using LawFirmBusinessLogic.OfficePackage.HelperEnums; using LawFirmBusinessLogic.OfficePackage.HelperModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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 document in info.Documents) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> {(document.DocumentName + " - ", new WordTextProperties { Size = "24", Bold = true}), (document.Price.ToString(), new WordTextProperties { Size = "24", })}, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } public void CreateTableDoc(WordInfo wordInfo) { CreateWord(wordInfo); var list = new List(); foreach (var shop in wordInfo.Shops) { list.Add(shop.Name); list.Add(shop.Adress); list.Add(shop.OpeningDate.ToString()); } var wordTable = new WordTable { Headers = new List { "Название", "Адрес", "Дата открытия"}, Texts = list }; CreateTable(wordTable); SaveWord(wordInfo); } /// Создание doc-файла protected abstract void CreateWord(WordInfo info); /// Создание абзаца с текстом protected abstract void CreateParagraph(WordParagraph paragraph); /// Сохранение файла protected abstract void SaveWord(WordInfo info); protected abstract void CreateTable(WordTable info); } }