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(); + } +}