DD.WellWorkover.Cloud/AsbCloudApp/Data/WellOperationImport/WellOperationImportOptionsDto.cs

50 lines
1.5 KiB
C#

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) });
}
}