/// <summary> /// Формирует справки - направления на работу. /// </summary> /// <param name="student">Экземпляр класса с данными о студенте</param> /// <param name="specialization">Экземпляр класса с данными о специализации</param> /// <param name="workPlace">Экземпляр класса с данными о месте работы студента</param> /// <param name="path">Путь к сохраняемому файлу</param> /// <param name="template">Путь к файлу-шаблону</param> private void SaveEmploymentReport(IStudent student, ISpecialization specialization, IStudentCompany workPlace, string path, string template) { var doc = new WordFile(template); doc.ReplaceWordText("{surname}", student.Surname.Trim()); doc.ReplaceWordText("{name}", student.Name.Trim()); doc.ReplaceWordText("{patronymic}", student.Patronymic.Trim()); doc.ReplaceWordText("{year}", student.YearOfGraduation.ToString()); doc.ReplaceWordText("{chiper}", GetChiper(student, specialization)); doc.ReplaceWordText("{specialization}", GetFullSpecializationText(specialization)); doc.ReplaceWordText("{nameOfStateDepartment}", workPlace?.NameOfStateDepartment.Trim()); doc.ReplaceWordText("{nameOfCompany}", workPlace?.NameOfCompany.Trim()); doc.ReplaceWordText("{post}", workPlace?.Post.Trim()); doc.Save(path); if (OpenAfterCreate) { System.Diagnostics.Process.Start(path); } else { MessageBox.Show($"Файл {path}", "Отчет сформирован", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
// Возвращает текст специализации. private string GetFullSpecializationText(ISpecialization specialization) { var education = specialization.LevelOfEducation; string separator = education == 1 ? "профиль подготовки" : education == 2 ? "специализация" : "магистерская программа"; return($"{specialization.SpecialtyCode} «{specialization.SpecialtyName}» {separator} «{specialization.SpecialtyProfileName}»"); }
/// <summary> /// Предоставляет модальное окно для просмотра информации о профиле подготовки. /// </summary> /// <param name="main">Главное окно программы</param> /// <param name="specialization">Экземпляр класса, реализующего интерфейс <c>ISpecialization</c></param> public SpecializationForm(MainMDIForm main, ISpecialization specialization) : base(main, specialization) { InitializeComponent(); }
/// <summary> /// Предоставляет модальное окно для редактирования (добавления) информации о профиле подготовки. /// </summary> /// <param name="main">Главное окно программы</param> /// <param name="type">Тип действия (редактирование или добавление)</param> /// <param name="entity">Экземпляр класса, реализующего интерфейс <c>ISpecialization</c></param> /// <param name="viewContext">Экземпляр класса, реализующего интерфейс <c>IDataListView</c></param> public SpecializationForm(MainMDIForm main, ActionType type, ISpecialization entity, IDataListView <ISpecialization> viewContext) : base(type, entity, viewContext) { InitializeComponent(); this.Main = main; }
/// <summary> /// Сохраняет отчет "Подтверждение прибытия к справке о самостоятельном трудоустройстве". /// </summary> /// <param name="student">Экземпляр класса с данными о студенте</param> /// <param name="specialization">Экземпляр класса с данными о специализации</param> /// <param name="workPlace">Экземпляр класса с данными о месте работы студента</param> public void SaveSelfEmploymentConfirmationOfArrival(IStudent student, ISpecialization specialization, IStudentCompany workPlace) { var filename = $"{student.Surname}_подтверждение_{DateTime.Now.ToString("dd_MM_HH_m")}.docx"; SaveSelfEmploymentReport(student, specialization, GetPath(filename), SelfEmploymentConfirmationOfArrivalPath); }
/// <summary> /// Сохраняет отчет "Справка о самостоятельном трудоустройстве". /// </summary> /// <param name="student">Экземпляр класса с данными о студенте</param> /// <param name="specialization">Экземпляр класса с данными о специализации</param> /// <param name="workPlace">Экземпляр класса с данными о месте работы студента</param> public void SaveSelfEmployment(IStudent student, ISpecialization specialization, IStudentCompany workPlace) { var filename = $"{student.Surname}_справка_{DateTime.Now.ToString("dd_MM_HH_m")}.docx"; SaveSelfEmploymentReport(student, specialization, GetPath(filename), SelfEmploymentPath); }
/// <summary> /// Сохраняет отчет "Уведомление к свидетельству о направлении на работу". /// </summary> /// <param name="student">Экземпляр класса с данными о студенте</param> /// <param name="specialization">Экземпляр класса с данными о специализации</param> /// <param name="workPlace">Экземпляр класса с данными о месте работы студента</param> public void SaveNotification(IStudent student, ISpecialization specialization, IStudentCompany workPlace) { var filename = $"{student.Surname}_уведомление_{DateTime.Now.ToString("dd_MM_HH_m")}.docx"; SaveEmploymentReport(student, specialization, workPlace, GetPath(filename), NotificationPath); }
/// <summary> /// Сохраняет отчет "Свидетельство о направлении на работу". /// </summary> /// <param name="student">Экземпляр класса с данными о студенте</param> /// <param name="specialization">Экземпляр класса с данными о специализации</param> /// <param name="workPlace">Экземпляр класса с данными о месте работы студента</param> public void SaveCertificate(IStudent student, ISpecialization specialization, IStudentCompany workPlace) { var filename = $"{student.Surname}_свидетельство_о_направлении_{DateTime.Now.ToString("dd_MM_HH_m")}.docx"; SaveEmploymentReport(student, specialization, workPlace, GetPath(filename), CertificatePath); }
// Возвращает шифр в формате {Шифр из БД}{Год окончания ВУЗа}/{Идентификатор студента} private string GetChiper(IStudent student, ISpecialization specialization) { return($"{specialization.Cipher}{(student.YearOfGraduation % 2000).ToString()}/{student.ID}"); }