diff --git a/DepartmentPortal/AcademicProgressBusinessLogic/BindingModels/ReportBindingModel.cs b/DepartmentPortal/AcademicProgressBusinessLogic/BindingModels/ReportBindingModel.cs new file mode 100644 index 0000000..6292e7d --- /dev/null +++ b/DepartmentPortal/AcademicProgressBusinessLogic/BindingModels/ReportBindingModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AcademicProgressBusinessLogic.BindingModels +{ + // + /// Информация по выгрузке отчета + /// + public class ReportBindingModel + { + /// + /// Путь до папки, куда выгружать отчет + /// + public string FolderName { get; set; } + } +} diff --git a/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/ReportBusinessLogic.cs b/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/ReportBusinessLogic.cs index fc4c7fc..27d9f83 100644 --- a/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/ReportBusinessLogic.cs +++ b/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/ReportBusinessLogic.cs @@ -1,4 +1,9 @@ -using System; +using AcademicProgressBusinessLogic.BindingModels; +using AcademicProgressBusinessLogic.Interfaces; +using DepartmentBusinessLogic.Interfaces; +using ModuleTools.BusinessLogics; +using ModuleTools.Enums; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +11,40 @@ using System.Threading.Tasks; namespace AcademicProgressBusinessLogic.BusinessLogics { - public class ReportBusinessLogic + /// + /// Логика работы с отчетами + /// + public class ReportBusinessLogic : CoreBusinessLogic { + /// + /// Серивс для работы с отчетами + /// + private readonly IReportService _service; + + private readonly IStudentService _studentService; + + + /// + /// Логика работы с отчетом + /// + /// + public ReportBusinessLogic(IReportService service, IStudentService _studentService) + { + this._studentService = _studentService; + _service = service; + _serviceOperation = AccessOperation.Отчет_успеваемость; + _entity = "Отчеты для успеваемости"; + } + + public void SaveReportToWordFile(ReportBindingModel model) + { + /* SaveToWord.CreateDoc(new WordInfo + { + FileName = model.FolderName, + Title = "Список заявок", + RequestFlowers = GetRequestPlaces() + });*/ + } + } } diff --git a/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/StudentAcademicProgressBusinessLogic.cs b/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/StudentAcademicProgressBusinessLogic.cs index a1a20a1..0518afe 100644 --- a/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/StudentAcademicProgressBusinessLogic.cs +++ b/DepartmentPortal/AcademicProgressBusinessLogic/BusinessLogic/StudentAcademicProgressBusinessLogic.cs @@ -11,7 +11,7 @@ namespace AcademicProgressBusinessLogic.BusinessLogics /// public class StudentAcademicProgressBusinessLogic : GenericBusinessLogic { - public StudentAcademicProgressBusinessLogic(IStudentAcademicProgress service) : base(service, "Записи учебного прогресса", AccessOperation.Записи_Учебного_Прогресса) { } + public StudentAcademicProgressBusinessLogic(IStudentAcademicProgressService service) : base(service, "Записи учебного прогресса", AccessOperation.Записи_Учебного_Прогресса) { } } } diff --git a/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IReportService.cs b/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IReportService.cs new file mode 100644 index 0000000..dce157a --- /dev/null +++ b/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IReportService.cs @@ -0,0 +1,18 @@ +using AcademicProgressBusinessLogic.BindingModels; +using ModuleTools.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AcademicProgressBusinessLogic.Interfaces +{ + /// + /// Сервис работы по выгрузке отчета + /// + public interface IReportService + { + OperationResultModel SaveReportToWordFile(ReportBindingModel model); + } +} diff --git a/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgress.cs b/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgressService.cs similarity index 59% rename from DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgress.cs rename to DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgressService.cs index 1475e8d..c5b70f9 100644 --- a/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgress.cs +++ b/DepartmentPortal/AcademicProgressBusinessLogic/Interfaces/IStudentAcademicProgressService.cs @@ -7,5 +7,5 @@ namespace AcademicProgressBusinessLogic.Interfaces /// /// Хранение учебного прогресса /// - public interface IStudentAcademicProgress : IGenerticEntityService { } + public interface IStudentAcademicProgressService : IGenerticEntityService { } } \ No newline at end of file diff --git a/DepartmentPortal/AcademicProgressDatabaseImplementation/AcademicProgressImplementationExtensions.cs b/DepartmentPortal/AcademicProgressDatabaseImplementation/AcademicProgressImplementationExtensions.cs index fc92a09..eb30b2e 100644 --- a/DepartmentPortal/AcademicProgressDatabaseImplementation/AcademicProgressImplementationExtensions.cs +++ b/DepartmentPortal/AcademicProgressDatabaseImplementation/AcademicProgressImplementationExtensions.cs @@ -10,7 +10,7 @@ namespace AcademicProgressDatabaseImplementation { public void RegisterServices() { - DependencyManager.Instance.RegisterType(); + DependencyManager.Instance.RegisterType(); } } diff --git a/DepartmentPortal/AcademicProgressDatabaseImplementation/Implementations/StudentAcademicProgressService.cs b/DepartmentPortal/AcademicProgressDatabaseImplementation/Implementations/StudentAcademicProgressService.cs index 2f8e607..c8da872 100644 --- a/DepartmentPortal/AcademicProgressDatabaseImplementation/Implementations/StudentAcademicProgressService.cs +++ b/DepartmentPortal/AcademicProgressDatabaseImplementation/Implementations/StudentAcademicProgressService.cs @@ -18,7 +18,7 @@ namespace AcademicProgressDatabaseImplementation.Implementations /// public class StudentAcademicProgressService : AbstractGenerticEntityService, - IStudentAcademicProgress + IStudentAcademicProgressService { protected override OperationResultModel AdditionalCheckingWhenAdding(DbContext context, StudentAcademicProgressSetBindingModel model) => OperationResultModel.Success(null); diff --git a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlReportAcademicProgress.cs b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlReportAcademicProgress.cs index 083bc20..ceda2f5 100644 --- a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlReportAcademicProgress.cs +++ b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlReportAcademicProgress.cs @@ -33,7 +33,6 @@ namespace AcademicProgressWindowsDesktop.SpecialControls /// private readonly ReportBusinessLogic _reportLogic; - private IStudentService _studentLogic; /// /// Событие, вызываемое при закрытии контрола diff --git a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.Designer.cs b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.Designer.cs index 962628c..2af4b69 100644 --- a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.Designer.cs +++ b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.Designer.cs @@ -90,6 +90,7 @@ namespace AcademicProgressWindowsDesktop.SpecialControls this.buttonSaveSelectFolder.TabIndex = 21; this.buttonSaveSelectFolder.Text = "Выбрать папку"; this.buttonSaveSelectFolder.UseVisualStyleBackColor = true; + this.buttonSaveSelectFolder.Click += new System.EventHandler(this.buttonSaveSelectFolder_Click); // // buttonSave // @@ -99,6 +100,7 @@ namespace AcademicProgressWindowsDesktop.SpecialControls this.buttonSave.TabIndex = 22; this.buttonSave.Text = "Сохранить"; this.buttonSave.UseVisualStyleBackColor = true; + this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); // // textBoxSaveFolderName // diff --git a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.cs b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.cs index 16c33d3..841a840 100644 --- a/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.cs +++ b/DepartmentPortal/AcademicProgressWindowsDesktop/SpecialControls/ControlStudentGraduate.cs @@ -1,7 +1,11 @@ -using DepartmentWindowsDesktop.EntityControls; +using AcademicProgressBusinessLogic.BindingModels; +using AcademicProgressBusinessLogic.BusinessLogics; +using DepartmentWindowsDesktop.EntityControls; using DesktopTools.BaseControls; +using DesktopTools.Helpers; using DesktopTools.Interfaces; using DesktopTools.Models; +using ModuleTools.BusinessLogics; using ModuleTools.Enums; using System; using System.Windows.Forms; @@ -14,12 +18,24 @@ namespace AcademicProgressWindowsDesktop.SpecialControls /// public partial class ControlStudentGraduate : UserControl, IControl { - /// + + /// + /// Класс с бизнес-логикой работы с отчетом + /// + private readonly ReportBusinessLogic _reportLogic; + + /// /// Событие, вызываемое при закрытии контрола /// private event Action CloseEvent; - public ControlStudentGraduate() + + + /// + /// Контрол для работы с отчетом приложения к диплому + /// + public ControlStudentGraduate() { + _reportLogic = DependencyManager.Instance.Resolve(); InitializeComponent(); Title = "Приложение к диплому"; //что за цифры тут откуда брать... @@ -66,12 +82,7 @@ namespace AcademicProgressWindowsDesktop.SpecialControls } #endregion - - - private void buttonSave_Click_1(object sender, EventArgs e) - { - - } + private void LoadGroupBoxReportInfo() { @@ -100,5 +111,30 @@ namespace AcademicProgressWindowsDesktop.SpecialControls groupBoxReportInfo.Controls.Add(controlStudentGroup); } - } + private void buttonSaveSelectFolder_Click(object sender, EventArgs e) + { + var fbd = new FolderBrowserDialog(); + if (fbd.ShowDialog() == DialogResult.OK) + { + textBoxSaveFolderName.Text = fbd.SelectedPath; + } + } + + private void buttonSave_Click(object sender, EventArgs e) + { + try + { + _reportLogic.SaveReportToWordFile(new ReportBindingModel + { + FolderName = textBoxSaveFolderName.Text + }); + DialogHelper.MessageInformation("Сохранение прошло успешно", "Результат"); + + } + catch (Exception ex) + { + DialogHelper.MessageException(_reportLogic.Errors, "Ошибки при сохранении"); + } + } + } } diff --git a/DepartmentPortal/Common/ModuleTools/Enums/AccessOperation.cs b/DepartmentPortal/Common/ModuleTools/Enums/AccessOperation.cs index 392e1be..459568a 100644 --- a/DepartmentPortal/Common/ModuleTools/Enums/AccessOperation.cs +++ b/DepartmentPortal/Common/ModuleTools/Enums/AccessOperation.cs @@ -61,6 +61,8 @@ Для_выпускников = 703, Академическая_разница = 704, + + Отчет_успеваемость = 705, #endregion