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

53 lines
1.2 KiB
C#

using Microsoft.AspNetCore.Mvc;
using SoftwareContracts.BindingModels;
using SoftwareContracts.BusinessLogicsContracts;
using SoftwareContracts.ViewModels;
namespace SoftwareRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[ApiExplorerSettings(IgnoreApi = true)]
public class ReportController : ControllerBase
{
private readonly ILogger _logger;
private readonly IReportLogic _logic;
public ReportController(ILogger<ReportController> logger, IReportLogic logic)
{
_logger = logger;
_logic = logic;
}
[HttpGet]
public List<ReportProjectsViewModel> GetReportProjects(DateTime startDate, DateTime endDate)
{
try
{
return _logic.GetProjects(new ReportBindingModel { DateFrom = startDate, DateTo = endDate });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка проектов");
throw;
}
}
[HttpPost]
public void SendReportPrescriptionsPdf(ReportBindingModel model)
{
try
{
_logic.SendMailWithReportAttachments(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка при отправке отчета на почту");
throw;
}
}
}
}