using AircraftPlantBusinessLogic.OfficePackage.HelperEnums; using AircraftPlantBusinessLogic.OfficePackage.HelperModels; using DocumentFormat.OpenXml.Wordprocessing; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AircraftPlantBusinessLogic.OfficePackage { /// /// Абстрактный класс для сохранения Word-файла /// public abstract class AbstractSaveToWord { /// /// Создание отчета в Word-формате /// /// 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 plane in info.Planes) { CreateParagraph(new WordParagraph { Texts = new List<(string, WordTextProperties)> { (plane.PlaneName, new WordTextProperties { Size = "24", Bold = true}), ("\t" + plane.Price.ToString(), new WordTextProperties{Size = "24"}) }, TextProperties = new WordTextProperties { Size = "24", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } /// /// Создание отчета по магазинам в doc-формате /// /// public void CreateShopsDoc(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 } }); CreateTable(new List { "3000", "3000", "3000" }); CreateRow(new WordRow { Texts = new List { "Название", "Адрес", "Дата открытия" }, TextProperties = new WordTextProperties { Size = "24", Bold = true, JustificationType = WordJustificationType.Center } }); foreach (var shop in info.Shops) { CreateRow(new WordRow { Texts = new List { shop.ShopName, shop.Address, shop.DateOpening.ToString() }, TextProperties = new WordTextProperties { Size = "22", JustificationType = WordJustificationType.Both } }); } SaveWord(info); } /// /// Создание doc-файла /// /// protected abstract void CreateWord(WordInfo info); /// /// Создание абзаца с текстом /// /// protected abstract void CreateParagraph(WordParagraph paragraph); /// /// Создание таблицы /// /// protected abstract void CreateTable(List columns); /// /// Создание строки /// /// protected abstract void CreateRow(WordRow row); /// /// Сохранение файла /// /// protected abstract void SaveWord(WordInfo info); } }