Files
constructdemo/ConstructorAppApi/Controllers/ProjectController.cs
2025-05-01 15:18:30 +03:00

119 lines
3.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using AutoMapper;
using ConstructorApp.BusinessLayer.Abstract;
using ConstructorApp.DtoLayer.ProjectDto;
using ConstructorApp.EntityLayer.Entities;
using Microsoft.AspNetCore.Mvc;
namespace ConstructorAppApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ProjectController : ControllerBase
{
private readonly IProjectService _projectService;
private readonly IMapper _mapper;
public ProjectController(IProjectService projectService, IMapper mapper)
{
_projectService = projectService;
_mapper = mapper;
}
[HttpGet]
public IActionResult ProjectList()
{
var value = _projectService.TGetListAll();
var result = _mapper.Map<List<ResultProjectDto>>(value);
return Ok(result);
}
[HttpPost]
public IActionResult CreateProject(CreateProjectDto createProjectDto)
{
var value = _mapper.Map<Project>(createProjectDto);
_projectService.TAdd(value);
return Ok("Proje Bilgisi Eklendi");
}
[HttpDelete("{id}")]
public IActionResult DeleteProject(int id)
{
var value = _projectService.TGetByID(id);
if (value != null)
{
_projectService.TDelete(value);
return Ok("Proje Bilgisi Silindi");
}
return NotFound("Proje Bilgisi Bulunamadı");
}
[HttpPut]
public IActionResult UpdateProject(UpdateProjectDto updateProjectDto)
{
var value = _mapper.Map<Project>(updateProjectDto);
_projectService.TUpdate(value);
return Ok("Proje Alanı Güncellendi");
}
[HttpGet("{id}")]
public IActionResult GetProject(int id)
{
var value = _projectService.TGetByID(id);
if (value != null)
{
var result = _mapper.Map<ResultProjectDto>(value);
return Ok(result);
}
return NotFound("Proe Bilgisi Bulunamadı");
}
[HttpGet("ProjectStatusActive/{id}")]
public IActionResult ProjectStatusActive(int id)
{
_projectService.TProjectStatusActive(id);
return Ok("Proje Aktif Hale Getirildi");
}
[HttpGet("ProjectStatusPassive/{id}")]
public IActionResult ProjectStatusPassive(int id)
{
_projectService.TProjectStatusPassive(id);
return Ok("Proje Pasif Hale Getirildi");
}
[HttpGet("CountAll")]
public IActionResult CountAll()
{
return Ok(_projectService.TCountAll());
}
[HttpGet("GetBySlug/{slug}")]
public IActionResult GetBySlug(string slug)
{
var project = _projectService.TGetProjectWithImagesBySlug(slug);
if (project == null)
return NotFound();
var dto = new ResultProjectDto
{
ProjectID = project.ProjectID,
Title = project.Title,
CoverUrl = project.CoverUrl,
Date = project.Date,
Location = project.Location,
ShortDescription = project.ShortDescription,
LongDescription = project.LongDescription,
GoogleMapIFrame = project.GoogleMapIFrame,
VideoUrl = project.VideoUrl,
FloorPlanUrl = project.FloorPlanUrl,
IsActive = project.IsActive,
Slug = project.Slug,
ImageUrls = project.ProjectGallery?.Select(g => g.ImageUrl!).ToList()
};
return Ok(dto);
}
}
}