using BankYouBankruptBusinessLogic.BusinessLogics; using BankYouBankruptContracts.BindingModels; using BankYouBankruptContracts.BusinessLogicsContracts; using BankYouBankruptContracts.SearchModels; using BankYouBankruptContracts.ViewModels; using BankYouBankruptRestApi.Controllers; using Microsoft.AspNetCore.Mvc; namespace BankYouBankruptRestAPI.Controllers { //указание у контроллера, что Route будет строиться не только по наванию контроллера, но и по названию метода (так как у нас два Post-метода) [Route("api/[controller]/[action]")] [ApiController] public class ReportController : Controller { private readonly ILogger _logger; //private readonly IReportCashierLogic _reportCashierLogic; private readonly IReportClientLogic _reportClientLogic; private readonly IReportCashierLogic _reportCashierLogic; public ReportController(ILogger logger, IReportClientLogic reportClientLogic, IReportCashierLogic reportCashierLogic) { _logger = logger; _reportClientLogic = reportClientLogic; _reportCashierLogic = reportCashierLogic; } //метод генерации отчёта за период по картам клиента [HttpPost] public void CreateClientReport(ReportSupportBindingModel model) { try { _reportClientLogic.SaveClientReportToPdfFile(new ReportBindingModel { FileName = "Отчёт по картам за " + DateTime.Now.ToShortDateString() + ".pdf", DateFrom = model.DateFrom, DateTo = model.DateTo }); } catch (Exception ex) { _logger.LogError(ex, "Ошибка входа в систему"); throw; } } //метод генерации отчёта по всем счетм клиентов [HttpPost] public void CreateCashierReport(ReportSupportBindingModel model) { try { _reportCashierLogic.SaveAccountsToPdfFile(new ReportBindingModel { FileName = "Отчёт по счетам за " + DateTime.Now.ToShortDateString() + ".pdf", ClientId = model.ClientId, DateFrom = model.DateFrom, DateTo = model.DateTo }); } catch (Exception ex) { _logger.LogError(ex, "Ошибка входа в систему"); throw; } } } }