ПДФ отсылаются :)

This commit is contained in:
Programmist73 2023-05-20 02:03:01 +04:00
parent da1ee4dc02
commit 5aea0a136f
9 changed files with 38 additions and 29 deletions

View File

@ -1,4 +1,5 @@
using BankYouBankruptBusinessLogic.OfficePackage; using BankYouBankruptBusinessLogic.MailWorker;
using BankYouBankruptBusinessLogic.OfficePackage;
using BankYouBankruptBusinessLogic.OfficePackage.HelperModels; using BankYouBankruptBusinessLogic.OfficePackage.HelperModels;
using BankYouBankruptContracts.BindingModels; using BankYouBankruptContracts.BindingModels;
using BankYouBankruptContracts.BusinessLogicsContracts; using BankYouBankruptContracts.BusinessLogicsContracts;
@ -18,26 +19,22 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics
public class ReportCashierLogic : IReportCashierLogic public class ReportCashierLogic : IReportCashierLogic
{ {
private readonly IMoneyTransferStorage _moneyTransferStorage; private readonly IMoneyTransferStorage _moneyTransferStorage;
private readonly ICashWithdrawalStorage _cashWithdrawalStorage; private readonly ICashWithdrawalStorage _cashWithdrawalStorage;
private readonly IClientStorage _clientStorage; private readonly IClientStorage _clientStorage;
private readonly IDebitingStorage _debitingStorage; private readonly IDebitingStorage _debitingStorage;
private readonly ICardStorage _cardStorage; private readonly ICardStorage _cardStorage;
private readonly AbstractSaveToExcel _saveToExcel; private readonly AbstractSaveToExcel _saveToExcel;
private readonly AbstractSaveToWord _saveToWord; private readonly AbstractSaveToWord _saveToWord;
private readonly AbstractSaveToPdf _saveToPdf; private readonly AbstractSaveToPdf _saveToPdf;
private readonly MailKitWorker _mailKitWorker;
//инициализируем поля класса через контейнер //инициализируем поля класса через контейнер
public ReportCashierLogic(IMoneyTransferStorage moneyTransferStorage, ICashWithdrawalStorage cashWithdrawalStorage, public ReportCashierLogic(IMoneyTransferStorage moneyTransferStorage, ICashWithdrawalStorage cashWithdrawalStorage,
IClientStorage clientStorage, AbstractSaveToExcel saveToExcel, IClientStorage clientStorage, AbstractSaveToExcel saveToExcel,
AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf,
IDebitingStorage debitingStorage, ICardStorage cardStorage) IDebitingStorage debitingStorage, ICardStorage cardStorage, MailKitWorker mailKitWorker)
{ {
_moneyTransferStorage = moneyTransferStorage; _moneyTransferStorage = moneyTransferStorage;
_cashWithdrawalStorage = cashWithdrawalStorage; _cashWithdrawalStorage = cashWithdrawalStorage;
@ -48,6 +45,8 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics
_clientStorage = clientStorage; _clientStorage = clientStorage;
_debitingStorage = debitingStorage; _debitingStorage = debitingStorage;
_cardStorage = cardStorage; _cardStorage = cardStorage;
_mailKitWorker = mailKitWorker;
} }
//формирование списка переводов между счетами за период //формирование списка переводов между счетами за период
@ -165,6 +164,18 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics
ReportCashWithdrawal = listCashWithdrawals ReportCashWithdrawal = listCashWithdrawals
}); });
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 return new ReportCashierViewModelForHTML
{ {

View File

@ -149,15 +149,6 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics
return totalList; return totalList;
} }
public string GetClientEmail(ReportBindingModel model)
{
return _clientStorage.GetElement(new ClientSearchModel
{
Id = model.ClientId
}).Email;
}
public void SaveToExcelFile(ReportBindingModel model, OfficeOperationEnum operationEnum) public void SaveToExcelFile(ReportBindingModel model, OfficeOperationEnum operationEnum)
{ {
if(operationEnum == OfficeOperationEnum.Между_cчетами) if(operationEnum == OfficeOperationEnum.Между_cчетами)
@ -244,7 +235,7 @@ namespace BankYouBankruptBusinessLogic.BusinessLogics
_mailKitWorker.SendMailAsync(new() _mailKitWorker.SendMailAsync(new()
{ {
MailAddress = GetClientEmail(model), MailAddress = model.Email,
Subject = "Отчёт по картам", Subject = "Отчёт по картам",
Text = $"За период с {model.DateFrom} " + Text = $"За период с {model.DateFrom} " +
$"по {model.DateTo}.", $"по {model.DateTo}.",

View File

@ -602,6 +602,7 @@ namespace BankYouBankruptCashierApp.Controllers
return View(APICashier.PostRequestReport<ReportCashierViewModelForHTML, ReportSupportBindingModel>("api/Report/CreateCashierReport", new ReportSupportBindingModel() return View(APICashier.PostRequestReport<ReportCashierViewModelForHTML, ReportSupportBindingModel>("api/Report/CreateCashierReport", new ReportSupportBindingModel()
{ {
ClientId = clientId, ClientId = clientId,
Email = APICashier.Cashier.Email,
DateFrom = dateFrom, DateFrom = dateFrom,
DateTo = dateTo DateTo = dateTo
})); }));

View File

@ -306,7 +306,7 @@ namespace BankYouBankruptClientApp.Controllers
} }
[HttpPost] [HttpPost]
public IActionResult CreateReport(DateTime dateFrom, DateTime dateTo, int clientId) public IActionResult CreateReport(DateTime dateFrom, DateTime dateTo)
{ {
if (APIClient.Client == null) if (APIClient.Client == null)
{ {
@ -319,7 +319,7 @@ namespace BankYouBankruptClientApp.Controllers
{ {
DateFrom = dateFrom, DateFrom = dateFrom,
DateTo = dateTo, DateTo = dateTo,
ClientId = clientId Email = APIClient.Client.Email
})); }));
} }

View File

@ -25,5 +25,7 @@ namespace BankYouBankruptContracts.BindingModels
public DateTime? DateTo { get; set; } public DateTime? DateTo { get; set; }
public MailsEnum Role { get; set; } public MailsEnum Role { get; set; }
public string? Email { get; set; }
} }
} }

View File

@ -20,5 +20,7 @@ namespace BankYouBankruptContracts.BindingModels
//для Excel отчёта клиента //для Excel отчёта клиента
public List<int>? CardList { get; set; } public List<int>? CardList { get; set; }
public string? Email { get; set; }
} }
} }

View File

@ -49,7 +49,7 @@ namespace BankYouBankruptRestAPI.Controllers
DateFrom = model.DateFrom, DateFrom = model.DateFrom,
DateTo = model.DateTo, DateTo = model.DateTo,
Role = MailsEnum.Клиент, Role = MailsEnum.Клиент,
ClientId = model.ClientId Email = model.Email
}); });
return result; return result;
@ -72,7 +72,9 @@ namespace BankYouBankruptRestAPI.Controllers
FileName = "Отчёт_по_счетам.pdf", FileName = "Отчёт_по_счетам.pdf",
ClientId = model.ClientId, ClientId = model.ClientId,
DateFrom = model.DateFrom, DateFrom = model.DateFrom,
DateTo = model.DateTo DateTo = model.DateTo,
Role = MailsEnum.Кассир,
Email = model.Email
}); });
return result; return result;