CourseWork_BankYouBankrupt/BankYouBankrupt/BankYouBankruptBusinessLogic/BusinessLogics/ReportClientLogic.cs

101 lines
3.3 KiB
C#
Raw Normal View History

2023-04-04 19:21:57 +04:00
using BankYouBankruptBusinessLogic.OfficePackage.HelperModels;
using BankYouBankruptBusinessLogic.OfficePackage;
using BankYouBankruptContracts.BindingModels;
using BankYouBankruptContracts.BusinessLogicsContracts;
using BankYouBankruptContracts.SearchModels;
using BankYouBankruptContracts.StoragesContracts;
using BankYouBankruptContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankYouBankruptBusinessLogic.BusinessLogics
{
public class ReportClientLogic : IReportClientLogic
{
private readonly ICreditingStorage _creditingStorage;
private readonly IDebitingStorage _debitingStorage;
private readonly AbstractSaveToExcelClient _saveToExcel;
private readonly AbstractSaveToWordClient _saveToWord;
private readonly AbstractSaveToPdfClient _saveToPdf;
2023-04-04 19:27:13 +04:00
public ReportClientLogic(ICreditingStorage creditingStorage, IDebitingStorage debitingStorage,
2023-04-04 19:21:57 +04:00
AbstractSaveToExcelClient saveToExcel, AbstractSaveToWordClient saveToWord, AbstractSaveToPdfClient saveToPdf)
{
_creditingStorage = creditingStorage;
_debitingStorage = debitingStorage;
_saveToExcel = saveToExcel;
_saveToWord = saveToWord;
_saveToPdf = saveToPdf;
}
public List<ReportClientViewModel>? GetCrediting(ReportBindingModel model)
{
return _creditingStorage.GetFilteredList(new CreditingSearchModel
{
2023-05-16 16:45:35 +04:00
DateFrom = model.DateFrom,
DateTo = model.DateTo,
2023-04-04 19:21:57 +04:00
}).Select(x => new ReportClientViewModel
{
2023-05-18 11:31:42 +04:00
OperationId = x.Id,
CardNumber = x.CardNumber,
SumOperation = x.Sum,
2023-05-16 16:45:35 +04:00
DateComplite = x.DateOpen
2023-04-04 19:21:57 +04:00
}).ToList();
}
public List<ReportClientViewModel>? GetDebiting(ReportBindingModel model)
{
2023-04-04 19:27:13 +04:00
return _debitingStorage.GetFilteredList(new DebitingSearchModel
{
2023-05-16 16:45:35 +04:00
DateTo = model.DateFrom,
DateFrom = model.DateTo,
2023-04-04 19:27:13 +04:00
}).Select(x => new ReportClientViewModel
{
2023-05-18 11:31:42 +04:00
OperationId = x.Id,
CardNumber = x.CardNumber,
2023-04-04 19:27:13 +04:00
SumOperation = x.Sum,
DateComplite = x.DateClose
2023-04-04 19:27:13 +04:00
}).ToList();
2023-04-04 19:21:57 +04:00
}
public void SaveCreditingToExcelFile(ReportBindingModel model)
{
throw new NotImplementedException();
}
public void SaveCreditingToWordFile(ReportBindingModel model)
{
throw new NotImplementedException();
}
public void SaveDebitingToExcelFile(ReportBindingModel model)
{
throw new NotImplementedException();
}
public void SaveDebitingToWordFile(ReportBindingModel model)
{
throw new NotImplementedException();
}
//отчёт в формате PDF для клиента
public void SaveClientReportToPdfFile(ReportBindingModel model)
{
2023-05-18 00:47:56 +04:00
_saveToPdf.CreateDoc(new PdfInfo
{
FileName = model.FileName,
2023-05-18 11:31:42 +04:00
Title = "Отчёт по операциям с картами",
DateFrom = model.DateFrom!.Value,
DateTo = model.DateTo!.Value,
ReportCrediting = GetCrediting(model),
ReportDebiting = GetDebiting(model)
});
}
}
2023-04-04 19:21:57 +04:00
}