2024-05-28 20:27:58 +04:00
using UniversityBusinessLogic.OfficePackage.HelperEnums ;
using UniversityBusinessLogic.OfficePackage.HelperModels ;
2024-05-28 20:09:01 +04:00
2024-05-28 20:27:58 +04:00
namespace UniversityBusinessLogic.OfficePackage
2024-05-28 20:09:01 +04:00
{
public abstract class AbstractSaveToPdfWorker
{
2024-05-29 17:43:10 +04:00
public void CreateDoc ( PdfInfoWorker info )
2024-05-28 20:09:01 +04:00
{
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 < string > { "2cm" , "3cm" , "6cm" , "3cm" , "4 cm" } ) ;
CreateRow ( new PdfRowParameters
{
2024-05-29 17:43:10 +04:00
Texts = new List < string > { "Номер" , "План обучения" , "Студент - дисциплина" } ,
2024-05-28 20:09:01 +04:00
Style = "NormalTitle" ,
ParagraphAlignment = PdfParagraphAlignmentType . Center
} ) ;
2024-05-29 17:43:10 +04:00
foreach ( var item in info . PlanOfStudyAndStudent )
2024-05-28 20:09:01 +04:00
{
CreateRow ( new PdfRowParameters
{
2024-05-29 17:43:10 +04:00
Texts = new List < string > { item . Id . ToString ( ) , item . PlanOfStudyName , string . Join ( ", " , item . StudentsAndDisciplines . Select ( sd = > $"{sd.Student} - {sd.Discipline}" ) ) } ,
2024-05-28 20:09:01 +04:00
Style = "Normal" ,
ParagraphAlignment = PdfParagraphAlignmentType . Left
} ) ;
}
SavePdf ( info ) ;
2024-05-29 17:43:10 +04:00
}
2024-05-28 20:09:01 +04:00
/// <summary>
/// Создание doc-файла
/// </summary>
/// <param name="info"></param>
2024-05-28 21:40:18 +04:00
protected abstract void CreatePdf ( PdfInfoWorker info ) ;
2024-05-28 20:09:01 +04:00
/// <summary>
/// Создание параграфа с текстом
/// </summary>
/// <param name="title"></param>
/// <param name="style"></param>
protected abstract void CreateParagraph ( PdfParagraph paragraph ) ;
/// <summary>
/// Создание таблицы
/// </summary>
/// <param name="title"></param>
/// <param name="style"></param>
protected abstract void CreateTable ( List < string > columns ) ;
/// <summary>
/// Создание и заполнение строки
/// </summary>
/// <param name="rowParameters"></param>
protected abstract void CreateRow ( PdfRowParameters rowParameters ) ;
/// <summary>
/// Сохранение файла
/// </summary>
/// <param name="info"></param>
2024-05-28 21:40:18 +04:00
protected abstract void SavePdf ( PdfInfoWorker info ) ;
2024-05-28 20:09:01 +04:00
}
}