From 8efcfdd805983ac0e3fb9e8ddf387e55b77ea06d Mon Sep 17 00:00:00 2001 From: GokaPek Date: Tue, 28 May 2024 20:07:10 +0400 Subject: [PATCH] =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80=20=D0=BD=D0=B0=D1=87?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=20=D1=80=D0=B5=D0=BF=D0=BE=D1=80=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractSaveToWordStorekeeper.cs | 84 +++++++++++++++++++ .../HelperModels/WordInfoStorekeeper.cs | 13 +++ 2 files changed, 97 insertions(+) create mode 100644 University/UniversityBusinessLogic/OfficePackage/AbstractSaveToWordStorekeeper.cs create mode 100644 University/UniversityBusinessLogic/OfficePackage/HelperModels/WordInfoStorekeeper.cs diff --git a/University/UniversityBusinessLogic/OfficePackage/AbstractSaveToWordStorekeeper.cs b/University/UniversityBusinessLogic/OfficePackage/AbstractSaveToWordStorekeeper.cs new file mode 100644 index 0000000..d3d74f0 --- /dev/null +++ b/University/UniversityBusinessLogic/OfficePackage/AbstractSaveToWordStorekeeper.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UniversityBusinessLogic.OfficePackage.HelperModels; +using UniversityBusinessLogics.OfficePackage.HelperEnums; + +namespace UniversityBusinessLogic.OfficePackage +{ + public abstract class AbstractSaveToWordStorekeeper + { + public void CreateDoc(WordInfoStorekeeper 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 discipline in info.Disciplines) + { + CreateParagraph(new WordParagraph + { + Texts = new List<(string, WordTextProperties)> + { + ("Teacher №" + discipline.TeacherId.ToString() + " - " + discipline.TeacherName, new WordTextProperties {Size = "24", Bold=true}) + }, + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Both + } + }); + foreach (var assembly in discipline.StudentDisciplines) + { + /*if (!string.IsNullOrEmpty(assembly.AssemblyName) && !string.IsNullOrEmpty(assembly.AssemblyCategory) && assembly.AssemblyPrice != 0) + { + CreateParagraph(new WordParagraph + { + Texts = new List<(string, WordTextProperties)> { + (assembly.AssemblyName + " - ", new WordTextProperties { Size = "24" }), + (assembly.AssemblyCategory + " - ", new WordTextProperties { Size = "24" }), + (assembly.AssemblyPrice.ToString(), new WordTextProperties { Size = "24" }) + }, + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Both + } + }); + }*/ + + } + } + SaveWord(info); + } + + /// + /// Создание doc-файла + /// + /// + protected abstract void CreateWord(WordInfoStorekeeper info); + + /// + /// Создание абзаца с текстом + /// + /// + /// + protected abstract void CreateParagraph(WordParagraph paragraph); + + /// + /// Сохранение файла + /// + /// + protected abstract void SaveWord(WordInfoStorekeeper info); + } +} diff --git a/University/UniversityBusinessLogic/OfficePackage/HelperModels/WordInfoStorekeeper.cs b/University/UniversityBusinessLogic/OfficePackage/HelperModels/WordInfoStorekeeper.cs new file mode 100644 index 0000000..f40ff67 --- /dev/null +++ b/University/UniversityBusinessLogic/OfficePackage/HelperModels/WordInfoStorekeeper.cs @@ -0,0 +1,13 @@ +using UniversityContracts.ViewModels; + +namespace UniversityBusinessLogic.OfficePackage.HelperModels +{ + public class WordInfoStorekeeper + { + public string? FileName { get; set; } + public Stream? Stream { get; set; } + public string Title { get; set; } = string.Empty; + public List ReportObjects { get; set; } = new(); + public List Disciplines{ get; set; } = new(); + } +}