From e5c8b3534868164dbd2961030e0a261432815c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=B0?= Date: Fri, 31 May 2024 16:39:24 +0400 Subject: [PATCH] 1 --- .../BusinessLogic/ReportLogic.cs | 239 +++++++++--------- .../OfficePackage/Implements/SaveToExcel.cs | 21 +- University/UniversityEmployeeApp/Program.cs | 1 + 3 files changed, 127 insertions(+), 134 deletions(-) diff --git a/University/UniversityBusinessLogics/BusinessLogic/ReportLogic.cs b/University/UniversityBusinessLogics/BusinessLogic/ReportLogic.cs index 6acc41d..7cb3ddc 100644 --- a/University/UniversityBusinessLogics/BusinessLogic/ReportLogic.cs +++ b/University/UniversityBusinessLogics/BusinessLogic/ReportLogic.cs @@ -1,138 +1,133 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; + + using UniversityBusinessLogics.MailWorker; using UniversityBusinessLogics.OfficePackage; using UniversityContracts.BindingModels; using UniversityContracts.BusinessLogicContracts; using UniversityContracts.StoragesContracts; -namespace UniversityBusinessLogics.BusinessLogic +namespace UniversityBusinessLogics.BusinessLogics; + +public class ReportLogic : IReportLogic { - public class ReportLogic : IReportLogic - { - private readonly AbstractSaveToWord _saveToWord; - private readonly IPurchaseStorage _purchaseStorage; - private readonly IOperationStorage _carStorage; - private readonly AbstractSaveToExcel _saveToExcel; - private readonly IPaymentStorage _paymentStorage; - private readonly AbstractMailWorker _mailWorker; - private readonly AbstractSaveToPdf _saveToPdf; + private readonly AbstractSaveToWord _saveToWord; + private readonly IPurchaseStorage _purchaseStorage; + private readonly IOperationStorage _carStorage; + private readonly AbstractSaveToExcel _saveToExcel; + private readonly IPaymentStorage _paymentStorage; + private readonly AbstractMailWorker _mailWorker; + private readonly AbstractSaveToPdf _saveToPdf; - public ReportLogic(AbstractSaveToWord saveToWord, IPurchaseStorage purchaseStorage, AbstractSaveToExcel saveToExcel, - AbstractMailWorker mailWorker, IPaymentStorage paymentStorage, AbstractSaveToPdf saveToPdf, IOperationStorage carStorage) - { - _mailWorker = mailWorker; - _paymentStorage = paymentStorage; - _saveToExcel = saveToExcel; - _saveToWord = saveToWord; - _purchaseStorage = purchaseStorage; - _saveToPdf = saveToPdf; - _carStorage = carStorage; - } + public ReportLogic(AbstractSaveToWord saveToWord, IPurchaseStorage purchaseStorage, AbstractSaveToExcel saveToExcel, + AbstractMailWorker mailWorker, IPaymentStorage paymentStorage, AbstractSaveToPdf saveToPdf, IOperationStorage carStorage) + { + _mailWorker = mailWorker; + _paymentStorage = paymentStorage; + _saveToExcel = saveToExcel; + _saveToWord = saveToWord; + _purchaseStorage = purchaseStorage; + _saveToPdf = saveToPdf; + _carStorage = carStorage; + } - public void SavePurchasesToWord(ReportBindingModel option) - { - _saveToWord.CreateDoc(new() - { - FileName = option.FileName, - Stream = option.Stream, - Title = "Список сделок вместе с операциями", - ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() }) - .Select(x => (object)x).ToList(), - }); - } + public void SavePurchasesToWord(ReportBindingModel option) + { + _saveToWord.CreateDoc(new() + { + FileName = option.FileName, + Stream = option.Stream, + Title = "Список сделок вместе с операциями", + ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() }) + .Select(x => (object)x).ToList(), + }); + } - public void SavePurchasesToExcel(ReportBindingModel option) - { - _saveToExcel.CreateReportPurchase(new() - { - FileName = option.FileName, - Stream = option.Stream, - Title = "Список сделок вместе с операциями", - ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() }) - .Select(x => (object)x).ToList(), - Headers = new() { "Сделка", "Дата сделки", } - }); - } + public void SavePurchasesToExcel(ReportBindingModel option) + { + _saveToExcel.CreateReportPurchase(new() + { + FileName = option.FileName, + Stream = option.Stream, + Title = "Список сделок вместе с операциями", + ReportObjects = _purchaseStorage.GetFilteredList(new() { OperationsIds = option.Ids.ToList() }) + .Select(x => (object)x).ToList(), + Headers = new() { "Сделка", "Дата сделки",} + }); + } - public void SendPaymentsToEmail(ReportDateRangeBindingModel option, string email) - { - var payments = _paymentStorage.GetFilteredList(new() - { - DateFrom = option.DateFrom, - DateTo = option.DateTo, - }); - option.Stream = new MemoryStream(); - _saveToPdf.CreateDocForPayments(new() - { - DateFrom = option.DateFrom, - DateTo = option.DateTo, - Stream = option.Stream, - Title = "Данные по операциям с оплатами за период", - ReportObjects = payments.Select(x => (object)x).ToList() - }); + public void SendPaymentsToEmail(ReportDateRangeBindingModel option, string email) + { + var payments = _paymentStorage.GetFilteredList(new() + { + DateFrom = option.DateFrom, + DateTo = option.DateTo, + }); + option.Stream = new MemoryStream(); + _saveToPdf.CreateDocForPayments(new() + { + DateFrom = option.DateFrom, + DateTo = option.DateTo, + Stream = option.Stream, + Title = "Данные по операциям с оплатами за период", + ReportObjects = payments.Select(x => (object)x).ToList() + }); - _mailWorker.MailSendAsync(new() - { - FilesStreams = new() { new(option.Stream, "report.pdf") }, - Subject = $"Отчет по оплатам за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}", - MailAddress = email, - }); - } + _mailWorker.MailSendAsync(new() + { + FilesStreams = new() { new(option.Stream, "report.pdf") }, + Subject = $"Отчет по оплатам за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}", + MailAddress = email, + }); + } - public void SaveOperationsToWord(ReportBindingModel option) - { - _saveToWord.CreateDoc(new() - { - FileName = option.FileName, - Stream = option.Stream, - Title = "Список операций вместе с сделками", - ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() }) - .Select(x => (object)x).ToList(), - }); - } + public void SaveOperationsToWord(ReportBindingModel option) + { + _saveToWord.CreateDoc(new() + { + FileName = option.FileName, + Stream = option.Stream, + Title = "Список операций вместе с сделками", + ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() }) + .Select(x => (object)x).ToList(), + }); + } - public void SaveOperationsToExcel(ReportBindingModel option) - { - _saveToExcel.CreateReportOperations(new() - { - FileName = option.FileName, - Stream = option.Stream, - Ids = option.Ids.ToList(), - Title = "Список операций вместе с сделками", - ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() }) - .Select(x => (object)x).ToList(), - Headers = new() { "Вид", "Тип", "Дата" } - }); - } + public void SaveOperationsToExcel(ReportBindingModel option) + { + _saveToExcel.CreateReportOperations(new() + { + FileName = option.FileName, + Stream = option.Stream, + Ids = option.Ids.ToList(), + Title = "Список операций вместе с сделками", + ReportObjects = _carStorage.GetFilteredList(new() { PurchasesIds = option.Ids.ToList() }) + .Select(x => (object)x).ToList(), + Headers = new() { "Вид", "Тип", "Дата"} + }); + } - public void SendCostsToEmail(ReportDateRangeBindingModel option, string email) - { - var purchaseVisit = _purchaseStorage.GetFilteredList(new() - { - DateFrom = option.DateFrom, - DateTo = option.DateTo, - }); - option.Stream = new MemoryStream(); - _saveToPdf.CreateDocForPurchases(new() - { - DateFrom = option.DateFrom, - DateTo = option.DateTo, - Stream = option.Stream, - Title = "Данные по сделке со статьями затрат за период", - ReportObjects = purchaseVisit.Select(x => (object)x).ToList() - }); + public void SendCostsToEmail(ReportDateRangeBindingModel option, string email) + { + var purchaseVisit = _purchaseStorage.GetFilteredList(new() + { + DateFrom = option.DateFrom, + DateTo = option.DateTo, + }); + option.Stream = new MemoryStream(); + _saveToPdf.CreateDocForPurchases(new() + { + DateFrom = option.DateFrom, + DateTo = option.DateTo, + Stream = option.Stream, + Title = "Данные по сделке со статьями затрат за период", + ReportObjects = purchaseVisit.Select(x => (object)x).ToList() + }); - _mailWorker.MailSendAsync(new() - { - FilesStreams = new() { new(option.Stream, "report.pdf") }, - Subject = $"Отчет по статьям затрат за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}", - MailAddress = email, - }); - } - } -} - + _mailWorker.MailSendAsync(new() + { + FilesStreams = new() { new(option.Stream, "report.pdf") }, + Subject = $"Отчет по статьям затрат за {option.DateFrom.ToShortDateString()}-{option.DateTo.ToShortDateString()}", + MailAddress = email, + }); + } +} \ No newline at end of file diff --git a/University/UniversityBusinessLogics/OfficePackage/Implements/SaveToExcel.cs b/University/UniversityBusinessLogics/OfficePackage/Implements/SaveToExcel.cs index de19041..23020bd 100644 --- a/University/UniversityBusinessLogics/OfficePackage/Implements/SaveToExcel.cs +++ b/University/UniversityBusinessLogics/OfficePackage/Implements/SaveToExcel.cs @@ -188,17 +188,17 @@ namespace UniversityBusinessLogics.OfficePackage.Implements _shareStringPart.SharedStringTable = new SharedStringTable(); } - // Создаем лист в книгу - var worksheetPart = workbookpart.AddNewPart(); - worksheetPart.Worksheet = new Worksheet(new SheetData()); + // Create a new worksheet part + var workbookPart = _spreadsheetDocument.AddWorkbookPart(); + workbookPart.Workbook = new Workbook(); - // Добавляем лист в книгу - var sheets = _spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets()); - var sheet = new Sheet() + // Set the new worksheet as the active worksheet + var sheets = workbookPart.Workbook.AppendChild(new Sheets()); + var sheet = new Sheet { Id = _spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), - SheetId = 1, - Name = "Лист" + SheetId = (uint)sheets.ChildElements.Count + 1, + Name = "Sheet1" // You can change the name as needed }; sheets.Append(sheet); @@ -290,10 +290,7 @@ namespace UniversityBusinessLogics.OfficePackage.Implements } } - var mergeCell = new MergeCell() - { - Reference = new StringValue(excelParams.Merge) - }; + var mergeCell = new MergeCell { Reference = excelParams.Merge }; mergeCells.Append(mergeCell); } diff --git a/University/UniversityEmployeeApp/Program.cs b/University/UniversityEmployeeApp/Program.cs index 78e91b1..231ac32 100644 --- a/University/UniversityEmployeeApp/Program.cs +++ b/University/UniversityEmployeeApp/Program.cs @@ -1,5 +1,6 @@ using Serilog; using UniversityBusinessLogics.BusinessLogic; +using UniversityBusinessLogics.BusinessLogics; using UniversityBusinessLogics.MailWorker; using UniversityBusinessLogics.OfficePackage; using UniversityBusinessLogics.OfficePackage.Implements;