From 1d592d32ad94adbe7a0f14f3d96ddd2f67f02cb1 Mon Sep 17 00:00:00 2001 From: "a.puchkina" Date: Tue, 28 May 2024 21:06:16 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=BE=D1=80=D0=B4=20=D0=B8=20=D1=8D?= =?UTF-8?q?=D0=BA=D1=81=D0=B5=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogics/ReportLogic.cs | 37 +++++++++++++++-- .../AbstractSaveToExcelVisitsLawyer.cs | 40 ++++++++++++++++--- .../AbstractSaveToWordVisitsLawyer.cs | 21 ++++++---- .../ReportVisitLawyerBindingModel.cs | 11 +++++ .../BusinessLogicContracts/IReportLogic.cs | 6 +-- .../ViewModels/ReportVisitLawyerViewModel.cs | 5 ++- .../Controllers/ReportGuarantorController.cs | 8 ++-- 7 files changed, 102 insertions(+), 26 deletions(-) create mode 100644 LawFim/LawFirmContracts/BindingModels/ReportVisitLawyerBindingModel.cs diff --git a/LawFim/LawFirmBusinessLogic/BusinessLogics/ReportLogic.cs b/LawFim/LawFirmBusinessLogic/BusinessLogics/ReportLogic.cs index b9c7818..4ed7d5a 100644 --- a/LawFim/LawFirmBusinessLogic/BusinessLogics/ReportLogic.cs +++ b/LawFim/LawFirmBusinessLogic/BusinessLogics/ReportLogic.cs @@ -131,9 +131,9 @@ namespace LawFirmBusinessLogic.BusinessLogics return list; } - public List GetVisitLawyer(ReportBindingModel model) + public List GetVisitLawyer(ReportVisitLawyerBindingModel model) { - var list = new List(); + /*var list = new List(); var lawyers = _lawyerStorage.GetFilteredList(new LawyerSearchModel { Id = model.LawyerId @@ -165,6 +165,35 @@ namespace LawFirmBusinessLogic.BusinessLogics } list.Add(record); } + return list;*/ + + var lawyers = _lawyerStorage.GetFilteredList(new LawyerSearchModel { Id = model.LawyerId }); + var hearings = _hearingStorage.GetFilteredList(new HearingSearchModel { GuarantorId = model.GuarantorId }); + var visits = _visitStorage.GetFullList(); + + var list = new List(); + foreach (var lawyer in lawyers) + { + var record = new ReportVisitLawyerViewModel + { + LawyerFIO = lawyer.FIO, + }; + foreach (var hear in hearings) + { + if (hear.HearingLawyers.ContainsKey(lawyer.Id)) + { + foreach (var vis in visits) + { + if (vis.HearingId.Equals(hear.Id)) + { + record.VisitDate = vis.VisitDate; + record.Visits.Add(new(vis.Id, vis.VisitDate)); + } + } + } + } + list.Add(record); + } return list; } @@ -244,7 +273,7 @@ namespace LawFirmBusinessLogic.BusinessLogics }); } - public void SaveVisitLawyerToWordFile(ReportBindingModel model) + public void SaveVisitLawyerToWordFile(ReportVisitLawyerBindingModel model) { _saveToWordVisitLawyer.CreateDoc(new WordVisitLawyerInfo { @@ -254,7 +283,7 @@ namespace LawFirmBusinessLogic.BusinessLogics }); } - public void SaveVisitLawyerToExcelFile(ReportBindingModel model) + public void SaveVisitLawyerToExcelFile(ReportVisitLawyerBindingModel model) { _saveToExcelVisitLawyer.CreateReport(new ExcelVisitsLawyerInfo { diff --git a/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToExcelVisitsLawyer.cs b/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToExcelVisitsLawyer.cs index 373f09d..3eeac85 100644 --- a/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToExcelVisitsLawyer.cs +++ b/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToExcelVisitsLawyer.cs @@ -19,31 +19,61 @@ namespace LawFirmBusinessLogic.OfficePackages Text = info.Title, StyleInfo = ExcelStyleInfoType.Title }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "A", + RowIndex = 2, + Text = "Юрист", + StyleInfo = ExcelStyleInfoType.TextWithBroder + }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "B", + RowIndex = 2, + Text = "Номер визита", + StyleInfo = ExcelStyleInfoType.TextWithBroder + }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "C", + RowIndex = 2, + Text = "Дата визита", + StyleInfo = ExcelStyleInfoType.TextWithBroder + }); MergeCells(new ExcelMergeParameters { CellFromName = "A1", CellToName = "C1" }); - uint rowIndex = 2; + uint rowIndex = 4; + foreach (var vl in info.VisitLawyer) { InsertCellInWorksheet(new ExcelCellParameters { ColumnName = "A", RowIndex = rowIndex, - Text = vl.LawyerName, + Text = vl.LawyerFIO, StyleInfo = ExcelStyleInfoType.Text }); rowIndex++; - foreach (var hearing in vl.Visits) + foreach (var visit in vl.Visits) { InsertCellInWorksheet(new ExcelCellParameters { ColumnName = "B", RowIndex = rowIndex, - Text = hearing.ToString(), + Text = visit.Id.ToString(), StyleInfo = - ExcelStyleInfoType.TextWithBroder + ExcelStyleInfoType.Text + }); + InsertCellInWorksheet(new ExcelCellParameters + { + ColumnName = "C", + RowIndex = rowIndex, + Text = visit.VisitDate.ToString(), + StyleInfo = + ExcelStyleInfoType.Text }); } diff --git a/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToWordVisitsLawyer.cs b/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToWordVisitsLawyer.cs index ad7e4a8..e78f48a 100644 --- a/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToWordVisitsLawyer.cs +++ b/LawFim/LawFirmBusinessLogic/OfficePackages/AbstractSaveToWordVisitsLawyer.cs @@ -21,16 +21,21 @@ namespace LawFirmBusinessLogic.OfficePackages }); foreach (var visitLawyer in info.VisitLawyer) { - CreateParagraph(new WordParagraph + foreach (var visit in visitLawyer.Visits) { - Texts = new List<(string, WordTextProperties)> { - (visitLawyer.LawyerName, new WordTextProperties { Size = "24", Bold=true}), (" " + visitLawyer.Visits.ToString(), new WordTextProperties { Size = "24"})}, - TextProperties = new WordTextProperties + CreateParagraph(new WordParagraph { - Size = "24", - JustificationType = WordJustificationType.Both - } - }); + Texts = new List<(string, WordTextProperties)> { + (visitLawyer.LawyerFIO, new WordTextProperties { Size = "24", Bold=true}), + (" Номер визита: " + visit.Id.ToString(), new WordTextProperties { Size = "24"}), + (" Дата визита: " + visit.VisitDate.ToString(), new WordTextProperties { Size = "24"})}, + TextProperties = new WordTextProperties + { + Size = "24", + JustificationType = WordJustificationType.Both + } + }); + } } SaveWord(info); } diff --git a/LawFim/LawFirmContracts/BindingModels/ReportVisitLawyerBindingModel.cs b/LawFim/LawFirmContracts/BindingModels/ReportVisitLawyerBindingModel.cs new file mode 100644 index 0000000..1f56434 --- /dev/null +++ b/LawFim/LawFirmContracts/BindingModels/ReportVisitLawyerBindingModel.cs @@ -0,0 +1,11 @@ +using LawFirmContracts.ViewModels; + +namespace LawFirmContracts.BindingModels +{ + public class ReportVisitLawyerBindingModel + { + public string FileName { get; set; } = string.Empty; + public int? LawyerId { get; set; } + public int? GuarantorId { get; set; } + } +} diff --git a/LawFim/LawFirmContracts/BusinessLogicContracts/IReportLogic.cs b/LawFim/LawFirmContracts/BusinessLogicContracts/IReportLogic.cs index 0f74a12..cdfd9e2 100644 --- a/LawFim/LawFirmContracts/BusinessLogicContracts/IReportLogic.cs +++ b/LawFim/LawFirmContracts/BusinessLogicContracts/IReportLogic.cs @@ -7,13 +7,13 @@ namespace LawFirmContracts.BusinessLogicContracts { List GetClientsConsultation(ReportBindingModel model); List GetGetClients(ReportBindingModel model); - List GetVisitLawyer(ReportBindingModel model); + List GetVisitLawyer(ReportVisitLawyerBindingModel model); List GetConsultationHearing(ReportConsultationHearingBindingModel model); void SaveClientsConsultationToWordFile(ReportBindingModel model); void SaveClientsConsultationToExcelFile(ReportBindingModel model); - void SaveVisitLawyerToWordFile(ReportBindingModel model); - void SaveVisitLawyerToExcelFile(ReportBindingModel model); + void SaveVisitLawyerToWordFile(ReportVisitLawyerBindingModel model); + void SaveVisitLawyerToExcelFile(ReportVisitLawyerBindingModel model); void SaveConsultationHearingToPdfFile(ReportConsultationHearingBindingModel model); void SaveClientsToPdfFile(ReportBindingModel model); } diff --git a/LawFim/LawFirmContracts/ViewModels/ReportVisitLawyerViewModel.cs b/LawFim/LawFirmContracts/ViewModels/ReportVisitLawyerViewModel.cs index 0681935..c993826 100644 --- a/LawFim/LawFirmContracts/ViewModels/ReportVisitLawyerViewModel.cs +++ b/LawFim/LawFirmContracts/ViewModels/ReportVisitLawyerViewModel.cs @@ -2,7 +2,8 @@ { public class ReportVisitLawyerViewModel { - public string LawyerName { get; set; } = string.Empty; - public List Visits { get; set; } = new(); + public string LawyerFIO { get; set; } = string.Empty; + public DateTime? VisitDate { get; set; } + public List<(int Id, DateTime VisitDate)> Visits { get; set; } = new(); } } diff --git a/LawFim/LawFirmRestApi/Controllers/ReportGuarantorController.cs b/LawFim/LawFirmRestApi/Controllers/ReportGuarantorController.cs index 55fc336..92c5a6d 100644 --- a/LawFim/LawFirmRestApi/Controllers/ReportGuarantorController.cs +++ b/LawFim/LawFirmRestApi/Controllers/ReportGuarantorController.cs @@ -42,11 +42,11 @@ namespace LawFirmRestApi.Controllers } } [HttpPost] - public void SaveVisitLawyerToWordFile(ReportBindingModel report) + public void SaveVisitLawyerToWordFile(ReportVisitLawyerBindingModel report) { try { - _reportLogic.SaveVisitLawyerToWordFile(new ReportBindingModel { GuarantorId = report.GuarantorId, FileName = "D:\\CourseWork\\wordVisitLawyerReport.docx", ClientId = report.ClientId }); + _reportLogic.SaveVisitLawyerToWordFile(new ReportVisitLawyerBindingModel { GuarantorId = report.GuarantorId, FileName = "D:\\CourseWork\\wordVisitLawyerReport.docx", LawyerId = report.LawyerId }); } catch (Exception ex) { @@ -55,11 +55,11 @@ namespace LawFirmRestApi.Controllers } } [HttpPost] - public void SaveVisitLawyerToExcelFile(ReportBindingModel report) + public void SaveVisitLawyerToExcelFile(ReportVisitLawyerBindingModel report) { try { - _reportLogic.SaveVisitLawyerToExcelFile(new ReportBindingModel { GuarantorId = report.GuarantorId, FileName = "D:\\CourseWork\\excelVisitLawyerReport.xlsx", ClientId = report.ClientId }); + _reportLogic.SaveVisitLawyerToExcelFile(new ReportVisitLawyerBindingModel { GuarantorId = report.GuarantorId, FileName = "D:\\CourseWork\\excelVisitLawyerReport.xlsx", LawyerId = report.LawyerId }); } catch (Exception ex) {