Разделил Dto

This commit is contained in:
parent 14615517d6
commit 7d00cfde1c
5 changed files with 86 additions and 50 deletions

View File

@ -0,0 +1,12 @@
namespace AsbCloudApp.Data.WellOperationImport.Options;
/// <summary>
/// Опции для парсинга
/// </summary>
public interface IWellOperationImportOptions
{
/// <summary>
/// Тип операции
/// </summary>
int IdType { get; }
}

View File

@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.WellOperationImport.Options;
/// <summary>
/// Опции для парсинга дефолтного шаблона
/// </summary>
public class WellOperationImportDefaultOptionsDto : IWellOperationImportOptions
{
/// <summary>
/// Тип операции
/// 0 - плановая операция
/// 1 - фактическая операция
/// </summary>
[Required]
[Range(0, 1, ErrorMessage = "Тип операции недопустим. Допустимые: 0, 1")]
public int IdType { get; set; }
}

View File

@ -0,0 +1,36 @@
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.WellOperationImport.Options;
/// <summary>
/// Опции для настройки парсинга документа ГПНХ(Хантос)
/// </summary>
public class WellOperationImportGazpromKhantosOptionsDto : IWellOperationImportOptions
{
/// <summary>
/// Название листа
/// </summary>
[Required]
[StringLength(250, MinimumLength = 1, ErrorMessage = "Название листа должно быть задано")]
public string SheetName { get; set; } = null!;
/// <summary>
/// Тип операции
/// 0 - плановая операция
/// </summary>
[Required]
[Range(0, 0, ErrorMessage = "Тип операции недопустим. Допустимый: 0")]
public int IdType { get; set; }
/// <summary>
/// Начальная строка
/// </summary>
[Required]
public int StartRow { get; set; }
/// <summary>
/// Конечная строка
/// </summary>
[Required]
public int EndRow { get; set; }
}

View File

@ -0,0 +1,20 @@
using System.Collections.Generic;
using System.Linq;
namespace AsbCloudApp.Data.WellOperationImport;
/// <summary>
/// Лист полученный из файла Excel
/// </summary>
public class SheetDto
{
/// <summary>
/// Название листа
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// Строки
/// </summary>
public IEnumerable<RowDto> Rows { get; set; } = Enumerable.Empty<RowDto>();
}

View File

@ -1,50 +0,0 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.WellOperationImport;
/// <summary>
/// Опции для настройки парсинга документа
/// </summary>
public class WellOperationParserOptionsDto : IValidatableObject
{
/// <summary>
/// Название листа
/// </summary>
public string? SheetName { get; set; }
/// <summary>
/// Тип операции
/// 0 - плановая операция
/// 1 - фактическая операция
/// </summary>
[Required]
[Range(0, 1, ErrorMessage = "Тип операции недопустим. Допустимые: 0, 1")]
public int IdType { get; set; }
/// <summary>
/// Тип шаблона
/// 0 - Дефолтный шаблон
/// 1 - Газпром хантос
/// </summary>
[Required]
[Range(0, 1, ErrorMessage = "Тип шаблона недопустим. Допустимые: 0, 1")]
public int IdTemplate { get; set; }
/// <summary>
/// Начальная строка
/// </summary>
public int? StartRow { get; set; }
/// <summary>
/// Конечная строка
/// </summary>
public int? EndRow { get; set; }
/// <inheritdoc/>
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (IdTemplate != 0 && string.IsNullOrWhiteSpace(SheetName))
yield return new ValidationResult("Название листа должно быть задано", new[] { nameof(SheetName) });
}
}