From 7d00cfde1c61f721664c3211a1cf993a34b73958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Wed, 4 Oct 2023 15:34:42 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20Dto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Options/IWellOperationImportOptions.cs | 12 +++++ .../WellOperationImportDefaultOptionsDto.cs | 18 +++++++ ...OperationImportGazpromKhantosOptionsDto.cs | 36 +++++++++++++ .../Data/WellOperationImport/SheetDto.cs | 20 ++++++++ .../WellOperationImportOptionsDto.cs | 50 ------------------- 5 files changed, 86 insertions(+), 50 deletions(-) create mode 100644 AsbCloudApp/Data/WellOperationImport/Options/IWellOperationImportOptions.cs create mode 100644 AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportDefaultOptionsDto.cs create mode 100644 AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportGazpromKhantosOptionsDto.cs create mode 100644 AsbCloudApp/Data/WellOperationImport/SheetDto.cs delete mode 100644 AsbCloudApp/Data/WellOperationImport/WellOperationImportOptionsDto.cs diff --git a/AsbCloudApp/Data/WellOperationImport/Options/IWellOperationImportOptions.cs b/AsbCloudApp/Data/WellOperationImport/Options/IWellOperationImportOptions.cs new file mode 100644 index 00000000..30b9cf8c --- /dev/null +++ b/AsbCloudApp/Data/WellOperationImport/Options/IWellOperationImportOptions.cs @@ -0,0 +1,12 @@ +namespace AsbCloudApp.Data.WellOperationImport.Options; + +/// +/// Опции для парсинга +/// +public interface IWellOperationImportOptions +{ + /// + /// Тип операции + /// + int IdType { get; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportDefaultOptionsDto.cs b/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportDefaultOptionsDto.cs new file mode 100644 index 00000000..a1db3d35 --- /dev/null +++ b/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportDefaultOptionsDto.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.WellOperationImport.Options; + +/// +/// Опции для парсинга дефолтного шаблона +/// +public class WellOperationImportDefaultOptionsDto : IWellOperationImportOptions +{ + /// + /// Тип операции + /// 0 - плановая операция + /// 1 - фактическая операция + /// + [Required] + [Range(0, 1, ErrorMessage = "Тип операции недопустим. Допустимые: 0, 1")] + public int IdType { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportGazpromKhantosOptionsDto.cs b/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportGazpromKhantosOptionsDto.cs new file mode 100644 index 00000000..d8b094c4 --- /dev/null +++ b/AsbCloudApp/Data/WellOperationImport/Options/WellOperationImportGazpromKhantosOptionsDto.cs @@ -0,0 +1,36 @@ +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.WellOperationImport.Options; + +/// +/// Опции для настройки парсинга документа ГПНХ(Хантос) +/// +public class WellOperationImportGazpromKhantosOptionsDto : IWellOperationImportOptions +{ + /// + /// Название листа + /// + [Required] + [StringLength(250, MinimumLength = 1, ErrorMessage = "Название листа должно быть задано")] + public string SheetName { get; set; } = null!; + + /// + /// Тип операции + /// 0 - плановая операция + /// + [Required] + [Range(0, 0, ErrorMessage = "Тип операции недопустим. Допустимый: 0")] + public int IdType { get; set; } + + /// + /// Начальная строка + /// + [Required] + public int StartRow { get; set; } + + /// + /// Конечная строка + /// + [Required] + public int EndRow { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Data/WellOperationImport/SheetDto.cs b/AsbCloudApp/Data/WellOperationImport/SheetDto.cs new file mode 100644 index 00000000..32091283 --- /dev/null +++ b/AsbCloudApp/Data/WellOperationImport/SheetDto.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Linq; + +namespace AsbCloudApp.Data.WellOperationImport; + +/// +/// Лист полученный из файла Excel +/// +public class SheetDto +{ + /// + /// Название листа + /// + public string Name { get; set; } = null!; + + /// + /// Строки + /// + public IEnumerable Rows { get; set; } = Enumerable.Empty(); +} \ No newline at end of file diff --git a/AsbCloudApp/Data/WellOperationImport/WellOperationImportOptionsDto.cs b/AsbCloudApp/Data/WellOperationImport/WellOperationImportOptionsDto.cs deleted file mode 100644 index 285f9d67..00000000 --- a/AsbCloudApp/Data/WellOperationImport/WellOperationImportOptionsDto.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace AsbCloudApp.Data.WellOperationImport; - -/// -/// Опции для настройки парсинга документа -/// -public class WellOperationParserOptionsDto : IValidatableObject -{ - /// - /// Название листа - /// - public string? SheetName { get; set; } - - /// - /// Тип операции - /// 0 - плановая операция - /// 1 - фактическая операция - /// - [Required] - [Range(0, 1, ErrorMessage = "Тип операции недопустим. Допустимые: 0, 1")] - public int IdType { get; set; } - - /// - /// Тип шаблона - /// 0 - Дефолтный шаблон - /// 1 - Газпром хантос - /// - [Required] - [Range(0, 1, ErrorMessage = "Тип шаблона недопустим. Допустимые: 0, 1")] - public int IdTemplate { get; set; } - - /// - /// Начальная строка - /// - public int? StartRow { get; set; } - - /// - /// Конечная строка - /// - public int? EndRow { get; set; } - - /// - public IEnumerable Validate(ValidationContext validationContext) - { - if (IdTemplate != 0 && string.IsNullOrWhiteSpace(SheetName)) - yield return new ValidationResult("Название листа должно быть задано", new[] { nameof(SheetName) }); - } -} \ No newline at end of file