using PlumbingRepairBusinessLogic.OfficePackage.HelperEnums; using PlumbingRepairBusinessLogic.OfficePackage.HelperModels; namespace PlumbingRepairBusinessLogic.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 work in info.Works) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (work.WorkName + " - ", new WordTextProperties { Size = "24", Bold = true }), (work.Price.ToString(), new WordTextProperties { Size = "24", })}, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } public void CreateDocShopTable(WordInfoShopTable info) { CreateWord(new WordInfo() { FileName = info.FileName}); CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (info.Title, new WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Center } }); CreateTable(new WordTable { Columns = new() { ("Название",3000),("Адрес",3000),("Дата открытия",3000)}, Rows = info.Shops.Select(x => new List { x.ShopName, x.Address, Convert.ToString(x.DateOpening), }) .ToList() });; SaveWord(new WordInfo() { FileName = info.FileName}); } /// /// Создание doc-файла /// /// protected abstract void CreateWord(WordInfo info); /// /// Создание абзаца с текстом /// /// /// protected abstract void CreateParagraph(WordParagraph paragraph); protected abstract void CreateTable(WordTable table); /// /// Сохранение файла /// /// protected abstract void SaveWord(WordInfo info); } }