using LawFirmBusinessLogic.OfficePackage.HelperEnums; using LawFirmBusinessLogic.OfficePackage.HelperModels; using System.Collections.Generic; namespace LawFirmBusinessLogic.OfficePackage { public abstract class AbstractSaveToWord { public void CreateDoc(WordInfo 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 } }); foreach (var blank in info.Documents) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (blank.DocumentName + " - ", new WordTextProperties { Size = "24", Bold=true}), (blank.Price.ToString(), new WordTextProperties { Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } public void CreateShopsTable(WordInfo 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 } }); List<(string, WordTextProperties)> shopsInfo = new() { { ("Название", new WordTextProperties { Bold = true, Size = "24" }) }, { ("Адрес", new WordTextProperties { Bold = true, Size = "24" }) }, { ("Дата открытия", new WordTextProperties { Bold = true, Size = "24" }) } }; foreach (var shop in info.Shops) { shopsInfo.Add((shop.ShopName, new WordTextProperties { Size = "20" })); shopsInfo.Add((shop.Address, new WordTextProperties { Size = "20" })); shopsInfo.Add((shop.DateOpen.ToString(), new WordTextProperties { Size = "20" })); } CreateTable(new WordParagraph { Texts = shopsInfo, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Center } }, 3); SaveWord(info); } /// /// Создание doc-файла /// /// protected abstract void CreateWord(WordInfo info); protected abstract void CreateTable(WordParagraph paragraph, int columnCount); /// /// Создание абзаца с текстом /// /// /// protected abstract void CreateParagraph(WordParagraph paragraph); /// /// Сохранение файла /// /// protected abstract void SaveWord(WordInfo info); } }