From ec10975f3d25e4bd8b02d8a3e25de768c3f70d12 Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Mon, 20 Mar 2023 13:57:48 +0400 Subject: [PATCH] fixed --- .../OfficePackage/AbstractSaveToPdf.cs | 84 +++++++++++++++++++ .../OfficePackage/AbstractSaveToWord.cs | 46 +++++----- .../OfficePackage/Implements/SaveToWord.cs | 10 +-- 3 files changed, 111 insertions(+), 29 deletions(-) create mode 100644 JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToPdf.cs diff --git a/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToPdf.cs b/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToPdf.cs new file mode 100644 index 0000000..8e42900 --- /dev/null +++ b/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToPdf.cs @@ -0,0 +1,84 @@ +using DocumentFormat.OpenXml.Drawing; +using JewelryStoreBusinessLogic.OfficePackage.HelperEnums; +using JewelryStoreBusinessLogic.OfficePackage.HelperModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace JewelryStoreBusinessLogic.OfficePackage +{ + public abstract class AbstractSaveToPdf + { + public void CreateDoc(PdfInfo info) + { + CreatePdf(info); + CreateParagraph(new PdfParagraph + { + Text = info.Title, + Style = + "NormalTitle", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + CreateParagraph(new PdfParagraph + { + Text = $"с { info.DateFrom.ToShortDateString() } по { info.DateTo.ToShortDateString() }", Style = "Normal", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + CreateTable(new List { "2cm", "3cm", "6cm", "3cm" }); + CreateRow(new PdfRowParameters + { + Texts = new List { "Номер", "Дата заказа", "Изделие", "Сумма" }, + Style = "NormalTitle", + ParagraphAlignment = PdfParagraphAlignmentType.Center + }); + foreach (var order in info.Orders) + { + CreateRow(new PdfRowParameters + { + Texts = new List { order.Id.ToString(), +order.DateCreate.ToShortDateString(), order.JewelName, order.Sum.ToString() }, + Style = "Normal", + ParagraphAlignment = PdfParagraphAlignmentType.Left + }); + } + CreateParagraph(new PdfParagraph + { + Text = $"Итого: {info.Orders.Sum(x => x.Sum)}\t", + Style = "Normal", + ParagraphAlignment = + PdfParagraphAlignmentType.Rigth + }); + SavePdf(info); + } + /// + /// Создание doc-файла + /// + /// + protected abstract void CreatePdf(PdfInfo info); + /// + /// Создание параграфа с текстом + /// + /// + /// + protected abstract void CreateParagraph(PdfParagraph paragraph); + /// + /// Создание таблицы + /// + /// + /// + protected abstract void CreateTable(List columns); + /// + /// Создание и заполнение строки + /// + /// + protected abstract void CreateRow(PdfRowParameters rowParameters); + /// + /// Сохранение файла + /// + /// + protected abstract void SavePdf(PdfInfo info); + } +} + diff --git a/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToWord.cs b/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToWord.cs index cb724fe..cfd4b89 100644 --- a/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToWord.cs +++ b/JewelryStoreBusinessLogic/OfficePackage/AbstractSaveToWord.cs @@ -6,41 +6,45 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using DocumentFormat.OpenXml.Drawing.Charts; namespace JewelryStoreBusinessLogic.OfficePackage { public abstract class AbstractSaveToWord { - public void CreateDoc(WordInfo info) - { - CreateWord(info); - CreateParagraph(new WordParagraph - { - Texts = new List<(string, WordTextProperties)> { (info.Title, newWordTextProperties { Bold = true, Size = "24", }) }, - TextProperties = new WordTextProperties - { - Size = "24", - JustificationType = WordJustificationType.Center - } - }); - foreach (var component in info.Components) + + public void CreateDoc(WordInfo info) { + CreateWord(info); CreateParagraph(new WordParagraph { - Texts = new List<(string, WordTextProperties)> {(component.ComponentName, new WordTextProperties { Size = "24", }) }, + Texts = new List<(string, WordTextProperties)> { (info.Title, new +WordTextProperties { Bold = true, Size = "24", }) }, TextProperties = new WordTextProperties { Size = "24", - JustificationType = WordJustificationType.Both + JustificationType = WordJustificationType.Center } }); + foreach (var component in info.Components) + { + CreateParagraph(new WordParagraph + { + Texts = new List<(string, WordTextProperties)> { +(component.ComponentName, new WordTextProperties { Size = "24", }) }, + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Both + } + }); + } + SaveWord(info); } - SaveWord(info); - } - /// - /// Создание doc-файла - /// - /// + /// +/// Создание doc-файла +/// +/// protected abstract void CreateWord(WordInfo info); /// /// Создание абзаца с текстом diff --git a/JewelryStoreBusinessLogic/OfficePackage/Implements/SaveToWord.cs b/JewelryStoreBusinessLogic/OfficePackage/Implements/SaveToWord.cs index 0741f88..83c4e39 100644 --- a/JewelryStoreBusinessLogic/OfficePackage/Implements/SaveToWord.cs +++ b/JewelryStoreBusinessLogic/OfficePackage/Implements/SaveToWord.cs @@ -9,7 +9,6 @@ using System.Linq; using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; -using static System.Net.Mime.MediaTypeNames; namespace JewelryStoreBusinessLogic.OfficePackage.Implements { @@ -86,7 +85,7 @@ GetJustificationValues(paragraphProperties.JustificationType) _wordDocument = WordprocessingDocument.Create(info.FileName, WordprocessingDocumentType.Document); MainDocumentPart mainPart = _wordDocument.AddMainDocumentPart(); - mainPart.Document = new Document(); + mainPart.Document = new DocumentFormat.OpenXml.Wordprocessing.Document(); _docBody = mainPart.Document.AppendChild(new Body()); } protected override void CreateParagraph(WordParagraph paragraph) @@ -108,12 +107,7 @@ GetJustificationValues(paragraphProperties.JustificationType) properties.AppendChild(new Bold()); } docRun.AppendChild(properties); - docRun.AppendChild(new Text - { - Text = run.Item1, - Space = - SpaceProcessingModeValues.Preserve - }); + docRun.AppendChild(new Text { Text = run.Item1, Space = SpaceProcessingModeValues.Preserve }); docParagraph.AppendChild(docRun); } _docBody.AppendChild(docParagraph);