53 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|