Files
piaps_kursach/SoftwareApplication/SoftwareRestApi/Controllers/IssueController.cs

97 lines
1.8 KiB
C#

using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using SoftwareContracts.BindingModels;
using SoftwareContracts.BusinessLogicsContracts;
using SoftwareContracts.SearchModels;
using SoftwareContracts.ViewModels;
using SoftwareDataBase;
namespace SoftwareRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class IssueController : Controller
{
private readonly ILogger _logger;
private readonly IIssueLogic _issue;
public IssueController(IIssueLogic issue, ILogger<Controller> logger)
{
_logger = logger;
_issue = issue;
}
[HttpGet]
public List<IssueViewModel>? GetIssueList()
{
try
{
return _issue.ReadList(null);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка замечаний");
throw;
}
}
[HttpGet]
public IssueViewModel? GetIssue(int printedId)
{
try
{
return _issue.ReadElement(new IssueSearchModel { Id = printedId });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения замечания по id={Id}", printedId);
throw;
}
}
[HttpPost]
public void Create(IssueBindingModel model)
{
try
{
_issue.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка создания замечания");
throw;
}
}
[HttpPost]
public void Update(IssueBindingModel model)
{
try
{
_issue.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления замечания");
throw;
}
}
[HttpPost]
public void Delete(IssueBindingModel model)
{
try
{
_issue.Delete(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка удаления замечания");
throw;
}
}
}
}