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

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 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,

View File

@ -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}.",

View File

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

View File

@ -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
}));
}

View File

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

View File

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

View File

@ -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;
}