From e10823c8685af808ff27c36ba773c2677f39d1b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D1=8F=20=D0=91=D0=B8=D0=B7=D1=8E=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0?= Date: Wed, 22 Nov 2023 17:30:30 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80,=20=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsbCloudInfrastructure.csproj | 6 +-- .../Trajectory/FactTrajectoryImportService.cs | 2 +- .../Trajectory/NnbTrajectoryImportService.cs | 4 +- .../Trajectory/NnbTrajectoryTemplate.xlsx | Bin 11279 -> 0 bytes .../PlannedTrajectoryImportService.cs | 35 +++--------------- .../FactTrajectoryTemplate.xlsx | Bin .../Templates/NnbTrajectoryTemplate.xlsx | Bin 0 -> 11600 bytes .../PlannedTrajectoryTemplate.xlsx | Bin .../Trajectory/TrajectoryImportService.cs | 29 +++++++-------- 9 files changed, 25 insertions(+), 51 deletions(-) delete mode 100644 AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryTemplate.xlsx rename AsbCloudInfrastructure/Services/Trajectory/{ => Templates}/FactTrajectoryTemplate.xlsx (100%) create mode 100644 AsbCloudInfrastructure/Services/Trajectory/Templates/NnbTrajectoryTemplate.xlsx rename AsbCloudInfrastructure/Services/Trajectory/{ => Templates}/PlannedTrajectoryTemplate.xlsx (100%) diff --git a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj index 3ff14745..8d110e66 100644 --- a/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj +++ b/AsbCloudInfrastructure/AsbCloudInfrastructure.csproj @@ -34,9 +34,9 @@ - - - + + + diff --git a/AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryImportService.cs b/AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryImportService.cs index 95b39bfc..defc5207 100644 --- a/AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryImportService.cs +++ b/AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryImportService.cs @@ -9,7 +9,7 @@ namespace AsbCloudInfrastructure.Services.Trajectory public class FactTrajectoryImportService : TrajectoryImportService { public override string templateFileName { get; set; } = "FactTrajectoryTemplate.xlsx"; - public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory"; + public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory.Templates"; public override string sheetNamePlannedTrajectory { get; set; } = "Фактическая траектория"; public override int headerRowsCount { get; set; } = 2; public override int ColumnWellboreDepth { get; set; } = 1; diff --git a/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryImportService.cs b/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryImportService.cs index fd87606e..869de4d7 100644 --- a/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryImportService.cs +++ b/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryImportService.cs @@ -9,8 +9,8 @@ namespace AsbCloudInfrastructure.Services.Trajectory public class NnbTrajectoryImportService : TrajectoryImportService { public override string templateFileName { get; set; } = "NnbTrajectoryTemplate.xlsx"; - public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory"; - public override string sheetNamePlannedTrajectory { get; set; } = "Плановая траектория"; + public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory.Templates"; + public override string sheetNamePlannedTrajectory { get; set; } = "Фактическая ннб-траектория"; public override int headerRowsCount { get; set; } = 2; public override int ColumnWellboreDepth { get; set; } = 1; public override int ColumnZenithAngle { get; set; } = 2; diff --git a/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryTemplate.xlsx b/AsbCloudInfrastructure/Services/Trajectory/NnbTrajectoryTemplate.xlsx deleted file mode 100644 index 8d01c25bb7dd02cd541c93b6977d580584b77b78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11279 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 diff --git a/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs b/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs index bbfbf7a1..296a4002 100644 --- a/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs +++ b/AsbCloudInfrastructure/Services/Trajectory/PlannedTrajectoryImportService.cs @@ -1,40 +1,18 @@ using AsbCloudApp.Data; using AsbCloudApp.Repositories; using AsbCloudApp.Services; -using AsbCloudDb.Model; using ClosedXML.Excel; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.Trajectory { - public class PlannedTrajectoryImportService : TrajectoryImportService //IPlannedTrajectoryImportService + public class PlannedTrajectoryImportService : TrajectoryImportService { /* * password for PlannedTrajectoryTemplate.xlsx is Drill2022 */ - - private readonly IWellService wellService; - private readonly ITrajectoryEditableRepository plannedTrajectoryService; - - //private const string templateFileName = "PlannedTrajectoryTemplate.xlsx"; - //private const string usingTemplateFile = "AsbCloudInfrastructure.Services.Trajectory"; - //private const string sheetNamePlannedTrajectory = "Плановая траектория"; - //private const int headerRowsCount = 2; - //private const int ColumnWellboreDepth = 1; - //private const int ColumnZenithAngle = 2; - //private const int ColumnAzimuthGeo = 3; - //private const int ColumnAzimuthMagnetic = 4; - //private const int ColumnVerticalDepth = 5; - //private const int ColumnRadius = 6; - //private const int ColumnComment = 7; public override string templateFileName { get; set; } = "PlannedTrajectoryTemplate.xlsx"; - public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory"; + public override string usingTemplateFile { get; set; } = "AsbCloudInfrastructure.Services.Trajectory.Templates"; public override string sheetNamePlannedTrajectory { get; set; } = "Плановая траектория"; public override int headerRowsCount { get; set; } = 2; public override int ColumnWellboreDepth { get; set; } = 1; @@ -46,12 +24,11 @@ namespace AsbCloudInfrastructure.Services.Trajectory public override int ColumnComment { get; set; } = 7; public PlannedTrajectoryImportService( - IWellService wellService, - ITrajectoryEditableRepository plannedTrajectoryService) + IWellService wellService, + ITrajectoryEditableRepository plannedTrajectoryService) : base(plannedTrajectoryService, wellService) { - this.wellService = wellService; - } + } protected override TrajectoryGeoPlanDto ParseRow(IXLRow row) { @@ -65,7 +42,7 @@ namespace AsbCloudInfrastructure.Services.Trajectory Radius = row.Cell(ColumnRadius).GetCellValue(), Comment = row.Cell(ColumnComment).GetCellValue() }; - + return trajectoryRow; } diff --git a/AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryTemplate.xlsx b/AsbCloudInfrastructure/Services/Trajectory/Templates/FactTrajectoryTemplate.xlsx similarity index 100% rename from AsbCloudInfrastructure/Services/Trajectory/FactTrajectoryTemplate.xlsx rename to AsbCloudInfrastructure/Services/Trajectory/Templates/FactTrajectoryTemplate.xlsx diff --git a/AsbCloudInfrastructure/Services/Trajectory/Templates/NnbTrajectoryTemplate.xlsx b/AsbCloudInfrastructure/Services/Trajectory/Templates/NnbTrajectoryTemplate.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b6bc4bbf778127584baf9acdf27bfe3b6f93a6df GIT binary patch literal 11600 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 lzlZ$4io*dJ where T: TrajectoryGeoDto + public abstract class TrajectoryImportService where T : TrajectoryGeoDto { - protected readonly IWellService wellService; + private readonly IWellService wellService; - protected readonly ITrajectoryRepository trajectoryService; + private readonly ITrajectoryRepository trajectoryService; + protected abstract void AddCoordinatesToRow(IXLRow row, T trajectory); + protected abstract T ParseRow(IXLRow row); public abstract string templateFileName { get; set; } public abstract string usingTemplateFile { get; set; } public abstract string sheetNamePlannedTrajectory { get; set; } @@ -30,8 +29,6 @@ namespace AsbCloudInfrastructure.Services.Trajectory public abstract int ColumnVerticalDepth { get; set; } public abstract int ColumnRadius { get; set; } public abstract int ColumnComment { get; set; } - protected abstract void AddCoordinatesToRow(IXLRow row, T trajectory); - protected abstract T ParseRow(IXLRow row); public TrajectoryImportService(ITrajectoryRepository trajectoryService, IWellService wellService) { @@ -54,37 +51,37 @@ namespace AsbCloudInfrastructure.Services.Trajectory return MakeExelFileStream(plannedTrajectorys); } - private Stream MakeExelFileStream(IEnumerable plannedTrajectories) + private Stream MakeExelFileStream(IEnumerable trajectories) { using Stream ecxelTemplateStream = GetTemplateFile(); using var workbook = new XLWorkbook(ecxelTemplateStream, XLEventTracking.Disabled); - AddPlannedTrajecoryToWorkbook(workbook, plannedTrajectories); + AddPlannedTrajecoryToWorkbook(workbook, trajectories); MemoryStream memoryStream = new MemoryStream(); workbook.SaveAs(memoryStream, new SaveOptions { }); memoryStream.Seek(0, SeekOrigin.Begin); return memoryStream; } - private void AddPlannedTrajecoryToWorkbook(XLWorkbook workbook, IEnumerable plannedTrajectories) + private void AddPlannedTrajecoryToWorkbook(XLWorkbook workbook, IEnumerable trajectories) { - if (plannedTrajectories.Any()) + if (trajectories.Any()) { var sheet = workbook.Worksheets.FirstOrDefault(ws => ws.Name == sheetNamePlannedTrajectory); if (sheet is null) throw new FileFormatException($"Лист с именем {sheetNamePlannedTrajectory} отсутствует, либо имеет некорректное название"); - AddPlannedTrajecoryToSheet(sheet, plannedTrajectories); + AddTrajecoryToSheet(sheet, trajectories); } } - private void AddPlannedTrajecoryToSheet(IXLWorksheet sheet, IEnumerable plannedTrajectories) + private void AddTrajecoryToSheet(IXLWorksheet sheet, IEnumerable trajectories) { - var rowList = plannedTrajectories.ToList(); + var rowList = trajectories.ToList(); for (int i = 0; i < rowList.Count; i++) { var row = sheet.Row(1 + i + headerRowsCount); AddCoordinatesToRow(row, rowList[i]); } - } + } public async Task GetFileNameAsync(int idWell, CancellationToken token) {