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