using DocumentFormat.OpenXml.Office2010.ExcelAc; using IceCreamShopBusinessLogic.OfficePackage.HelperEnums; using IceCreamShopBusinessLogic.OfficePackage.HelperModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IceCreamShopBusinessLogic.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 iceCream in info.IceCreams) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (iceCream.IceCreamName, new WordTextProperties { Size = "24", Bold = true}), (" - цена " + iceCream.Price.ToString(), new WordTextProperties { Size = "24" }) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } public void CreateTableDoc(WordInfo info) { CreateWord(info); List> list = new List>(); foreach (var shop in info.Shops) { var ls = new List { shop.ShopName, shop.Address, shop.DateOpen.ToShortDateString() }; list.Add(ls); } var wordTable = new WordTable { Headers = new List { "Название", "Адрес", "Дата открытия"}, Columns = 3, RowText = list }; CreateTable(wordTable); SaveWord(info); } protected abstract void CreateWord(WordInfo info); protected abstract void CreateParagraph(WordParagraph paragraph); protected abstract void CreateTable(WordTable table); protected abstract void SaveWord(WordInfo info); } }