using ElectronicsShopBusinessLogic.OfficePackage.HelperEnums; using ElectronicsShopBusinessLogic.OfficePackage.HelperModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ElectronicsShopBusinessLogic.OfficePackage { public abstract class AbstractSaveToWordEmployee { public byte[]? CreateDoc(WordInfoEmployee info) { CreateWord(info); CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (info.Title, new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Center } }); CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { ($"С {info.DateFrom} по {info.DateTo}", new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); foreach (var data in info.ListProduct) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (data.ProductName, new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); foreach (var paymeant in data.Values) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { ($"Оплата №:{paymeant.PaymeantID} статус:{paymeant.PaymeantStatus}", new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { ($"Итого:{data.Total}", new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } var document = SaveWord(info); return document; } // Создание doc-файла protected abstract void CreateWord(WordInfoEmployee info); // Создание абзаца с текстом protected abstract void CreateParagraph(WordParagraph paragraph); // Сохранение файла protected abstract byte[]? SaveWord(WordInfoEmployee info); } }