using BlacksmithWorkshopBusinessLogic.OfficePackage; using BlacksmithWorkshopBusinessLogic.OfficePackage.HelperModels; using BlacksmithWorkshopBusinessLogic.OfficePackage.Implements; using CarServiceContracts.BindingModels; using CarServiceContracts.BusinessLogicsContracts; using CarServiceContracts.StorageContracts; using CarServiceContracts.ViewModels; using Microsoft.Extensions.Logging; namespace CarServiceBusinessLogic.BusinessLogics { public class ReportLogic : IReportLogic { private readonly ILogger _logger; private readonly IWorkStorage _workStorage; private readonly IWorkPaymentStorage _workPaymentStorage; private readonly AbstractSaveToWord _saveToWord; public ReportLogic(ILogger logger, IWorkStorage workStorage, IWorkPaymentStorage workPaymentStorage, AbstractSaveToWord saveToWord) { _logger = logger; _workStorage = workStorage; _workPaymentStorage = workPaymentStorage; _saveToWord = saveToWord; } public List GetRequestsByWorks(ReportBindingModel model) { _logger.LogInformation("Reading requests by works"); return _workStorage.GetWorksWithRequest(new() { SelectedWorksIds = model.SelectedWorks }); } public List GetPayments(ReportBindingModel model) { _logger.LogInformation("Reading payments by works in requests"); return _workPaymentStorage.GetPaymentsByWorks(new() { DateFrom = model.DateFrom, DateTo = model.DateTo }); } public void SaveComponentsToWordFile(ReportBindingModel model) { _saveToWord.CreateDoc(new WordInfo { FileName = model.FileName, Title = "Список заявок", WorksWithRequests = GetRequestsByWorks(model) }); } public void SaveManufactureComponentToExcelFile(ReportBindingModel model) { throw new NotImplementedException(); } public void SaveOrdersToPdfFile(ReportBindingModel model) { throw new NotImplementedException(); } } }