using HotelContracts.BindingModels; using HotelContracts.BusinessLogicsContracts; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace HotelRestApi.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class ReportController : Controller { private readonly ILogger _logger; private readonly IReportOrganiserLogic _reportOrganiserLogic; private readonly IReportHeadwaiterLogic _reportHeadwaiterLogic; public ReportController(ILogger logger, IReportOrganiserLogic reportOrganiserLogic, IReportHeadwaiterLogic reportHeadwaiterLogic) { _logger = logger; _reportOrganiserLogic = reportOrganiserLogic; _reportHeadwaiterLogic = reportHeadwaiterLogic; } [HttpPost] public void CreateReportToPdfFile(ReportBindingModel model) { try { _reportOrganiserLogic.SaveMembersToPdfFile(new ReportBindingModel { FileName="Отчет PDF.pdf", DateFrom = model.DateFrom, DateTo = model.DateTo, OrganiserId=model.OrganiserId, }); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания отчета"); throw; } } [HttpPost] public void CreateReportToWordFile(ReportBindingModel model) { try { _reportOrganiserLogic.SaveMemberConferenceToWordFile(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания отчета"); throw; } } [HttpPost] public void CreateReportToExcelFile(ReportBindingModel model) { try { _reportOrganiserLogic.SaveMemberConferenceToExcelFile(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания отчета"); throw; } } [HttpPost] public void CreateHeadwaiterReportToWordFile(ReportHeadwaiterBindingModel model) { try { _reportHeadwaiterLogic.SaveDinnerRoomToWordFile(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания отчета"); throw; } } [HttpPost] public void CreateHeadwaiterReportToExcelFile(ReportHeadwaiterBindingModel model) { try { _reportHeadwaiterLogic.SaveDinnerRoomToExcelFile(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания отчета"); throw; } } } }