Upload files to 'STORestApi/Controllers'

This commit is contained in:
Ivan_Starostin 2024-05-01 15:40:57 +04:00
parent 2d94d8e7b2
commit 4762da23d8

View File

@ -0,0 +1,97 @@
using STOContracts.BindingModels;
using STOContracts.BusinessLogicsContracts;
using STOContracts.SearchModels;
using STOContracts.ViewModels;
using STODatabaseImplement.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace STORestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class WorkController : Controller
{
private readonly ILogger _logger;
private readonly IWorkLogic _logic;
public WorkController(ILogger<WorkController> logger, IWorkLogic logic)
{
_logger = logger;
_logic = logic;
}
[HttpGet]
public List<WorkViewModel>? GetWorkList()
{
try
{
return _logic.ReadList(null);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка работ");
throw;
}
}
[HttpGet]
public WorkViewModel? GetWork(int WorkId)
{
try
{
return _logic.ReadElement(new WorkSearchModel
{
Id = WorkId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения работы по Id={Id}", WorkId);
throw;
}
}
[HttpPost]
public void CreateWork(WorkBindingModel model)
{
try
{
_logic.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка создания работы");
throw;
}
}
[HttpPut]
public void UpdateWork(WorkBindingModel model)
{
try
{
_logic.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления работы");
throw;
}
}
[HttpDelete]
public void DeleteWork(WorkBindingModel model)
{
try
{
_logic.Delete(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка удаления работы");
throw;
}
}
}
}