diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs index 3d92073..b38ed14 100644 --- a/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs +++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportCashierLogic.cs @@ -1,4 +1,5 @@ -using BankYouBankruptBusinessLogic.OfficePackage; +using BankYouBankruptBusinessLogic.MailWorker; +using BankYouBankruptBusinessLogic.OfficePackage; using BankYouBankruptBusinessLogic.OfficePackage.HelperModels; using BankYouBankruptContracts.BindingModels; using BankYouBankruptContracts.BusinessLogicsContracts; @@ -18,26 +19,22 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics public class ReportCashierLogic : IReportCashierLogic { private readonly IMoneyTransferStorage _moneyTransferStorage; - private readonly ICashWithdrawalStorage _cashWithdrawalStorage; - private readonly IClientStorage _clientStorage; - private readonly IDebitingStorage _debitingStorage; - private readonly ICardStorage _cardStorage; private readonly AbstractSaveToExcel _saveToExcel; - private readonly AbstractSaveToWord _saveToWord; - private readonly AbstractSaveToPdf _saveToPdf; - //инициализируем поля класса через контейнер - public ReportCashierLogic(IMoneyTransferStorage moneyTransferStorage, ICashWithdrawalStorage cashWithdrawalStorage, + private readonly MailKitWorker _mailKitWorker; + + //инициализируем поля класса через контейнер + public ReportCashierLogic(IMoneyTransferStorage moneyTransferStorage, ICashWithdrawalStorage cashWithdrawalStorage, IClientStorage clientStorage, AbstractSaveToExcel saveToExcel, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf, - IDebitingStorage debitingStorage, ICardStorage cardStorage) + IDebitingStorage debitingStorage, ICardStorage cardStorage, MailKitWorker mailKitWorker) { _moneyTransferStorage = moneyTransferStorage; _cashWithdrawalStorage = cashWithdrawalStorage; @@ -48,6 +45,8 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics _clientStorage = clientStorage; _debitingStorage = debitingStorage; _cardStorage = cardStorage; + + _mailKitWorker = mailKitWorker; } //формирование списка переводов между счетами за период @@ -121,8 +120,8 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics return client.Surname + " " + client.Name + " " + client.Patronymic; } - //Сохранение мороженных в файл-Word - public void SaveAccountsToWordFile(ReportBindingModel model) + //Сохранение мороженных в файл-Word + public void SaveAccountsToWordFile(ReportBindingModel model) { _saveToWord.CreateDoc(new WordInfo { @@ -165,8 +164,20 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics ReportCashWithdrawal = listCashWithdrawals }); - //возврат полученных списков для отображения на вебе - return new ReportCashierViewModelForHTML + byte[] pdf = System.IO.File.ReadAllBytes("C:\\Users\\Programmist73\\Desktop\\Практика\\2-й курс\\4-й семестр\\CourseWork_BankYouBankrupt\\BankYouBankrupt\\BankYouBankruptRestAPI\\Отчёт_по_счетам.pdf"); + + _mailKitWorker.SendMailAsync(new() + { + MailAddress = model.Email, + Subject = "Отчёт по счетам", + Text = $"За период с {model.DateFrom} " + + $"по {model.DateTo}.", + File = pdf, + Role = model.Role + }); + + //возврат полученных списков для отображения на вебе + return new ReportCashierViewModelForHTML { ReportCashWithdrawal = listCashWithdrawals, diff --git a/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportClientLogic.cs b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportClientLogic.cs index b1bee23..3dda71f 100644 --- a/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportClientLogic.cs +++ b/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportClientLogic.cs @@ -149,15 +149,6 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics return totalList; } - public string GetClientEmail(ReportBindingModel model) - { - return _clientStorage.GetElement(new ClientSearchModel - { - Id = model.ClientId - }).Email; - } - - public void SaveToExcelFile(ReportBindingModel model, OfficeOperationEnum operationEnum) { if(operationEnum == OfficeOperationEnum.Между_cчетами) @@ -244,7 +235,7 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics _mailKitWorker.SendMailAsync(new() { - MailAddress = GetClientEmail(model), + MailAddress = model.Email, Subject = "Отчёт по картам", Text = $"За период с {model.DateFrom} " + $"по {model.DateTo}.", diff --git a/BankYouBankrupt/BankYouBankruptCashierApp/Controllers/HomeController.cs b/BankYouBankrupt/BankYouBankruptCashierApp/Controllers/HomeController.cs index 5c563fa..54d09a9 100644 --- a/BankYouBankrupt/BankYouBankruptCashierApp/Controllers/HomeController.cs +++ b/BankYouBankrupt/BankYouBankruptCashierApp/Controllers/HomeController.cs @@ -602,6 +602,7 @@ namespace BankYouBankruptCashierApp.Controllers return View(APICashier.PostRequestReport("api/Report/CreateCashierReport", new ReportSupportBindingModel() { ClientId = clientId, + Email = APICashier.Cashier.Email, DateFrom = dateFrom, DateTo = dateTo })); diff --git a/BankYouBankrupt/BankYouBankruptClientApp/Controllers/HomeController.cs b/BankYouBankrupt/BankYouBankruptClientApp/Controllers/HomeController.cs index bde8d4e..d86b531 100644 --- a/BankYouBankrupt/BankYouBankruptClientApp/Controllers/HomeController.cs +++ b/BankYouBankrupt/BankYouBankruptClientApp/Controllers/HomeController.cs @@ -306,7 +306,7 @@ namespace BankYouBankruptClientApp.Controllers } [HttpPost] - public IActionResult CreateReport(DateTime dateFrom, DateTime dateTo, int clientId) + public IActionResult CreateReport(DateTime dateFrom, DateTime dateTo) { if (APIClient.Client == null) { @@ -319,7 +319,7 @@ namespace BankYouBankruptClientApp.Controllers { DateFrom = dateFrom, DateTo = dateTo, - ClientId = clientId + Email = APIClient.Client.Email })); } diff --git a/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportBindingModel.cs b/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportBindingModel.cs index bb62042..88c519e 100644 --- a/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportBindingModel.cs +++ b/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportBindingModel.cs @@ -25,5 +25,7 @@ namespace BankYouBankruptContracts.BindingModels public DateTime? DateTo { get; set; } public MailsEnum Role { get; set; } + + public string? Email { get; set; } } } diff --git a/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportSupportBindingModel.cs b/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportSupportBindingModel.cs index 693079c..9e1cdde 100644 --- a/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportSupportBindingModel.cs +++ b/BankYouBankrupt/BankYouBankruptContracts/BindingModels/ReportSupportBindingModel.cs @@ -20,5 +20,7 @@ namespace BankYouBankruptContracts.BindingModels //для Excel отчёта клиента public List? CardList { get; set; } + + public string? Email { get; set; } } } diff --git a/BankYouBankrupt/BankYouBankruptRestAPI/Controllers/ReportController.cs b/BankYouBankrupt/BankYouBankruptRestAPI/Controllers/ReportController.cs index dc12bbd..3d88182 100644 --- a/BankYouBankrupt/BankYouBankruptRestAPI/Controllers/ReportController.cs +++ b/BankYouBankrupt/BankYouBankruptRestAPI/Controllers/ReportController.cs @@ -49,7 +49,7 @@ namespace BankYouBankruptRestAPI.Controllers DateFrom = model.DateFrom, DateTo = model.DateTo, Role = MailsEnum.Клиент, - ClientId = model.ClientId + Email = model.Email }); return result; @@ -72,8 +72,10 @@ namespace BankYouBankruptRestAPI.Controllers FileName = "Отчёт_по_счетам.pdf", ClientId = model.ClientId, DateFrom = model.DateFrom, - DateTo = model.DateTo - }); + DateTo = model.DateTo, + Role = MailsEnum.Кассир, + Email = model.Email + }); return result; } diff --git a/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_картам.pdf b/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_картам.pdf index 139b5d2..1befc10 100644 Binary files a/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_картам.pdf and b/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_картам.pdf differ diff --git a/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_счетам.pdf b/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_счетам.pdf index 62086fc..06dcc42 100644 Binary files a/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_счетам.pdf and b/BankYouBankrupt/BankYouBankruptRestAPI/Отчёт_по_счетам.pdf differ