forked from ddrilling/AsbCloudServer
70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace AsbCloudApp.Data.ProcessMaps;
|
|
|
|
/// <summary>
|
|
/// Секция скважины - план
|
|
/// </summary>
|
|
public class WellSectionPlanDto : ItemInfoDto,
|
|
IId,
|
|
IWellRelated,
|
|
IValidatableObject
|
|
{
|
|
/// <inheritdoc/>
|
|
public int Id { get; set; }
|
|
|
|
/// <inheritdoc/>
|
|
[Required]
|
|
public int IdWell { get; set; }
|
|
|
|
/// <summary>
|
|
/// Тип секции
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
|
[Range(1, int.MaxValue)]
|
|
public int IdSectionType { get; set; }
|
|
|
|
/// <summary>
|
|
/// Начальная глубина бурения, м
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
|
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
|
public double DepthStart { get; set; }
|
|
|
|
/// <summary>
|
|
/// Конечная глубина бурения, м
|
|
/// </summary>
|
|
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
|
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
|
public double DepthEnd { get; set; }
|
|
|
|
/// <summary>
|
|
/// Внешний диаметр
|
|
/// </summary>
|
|
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
|
public double? OuterDiameter { get; set; }
|
|
|
|
/// <summary>
|
|
/// Внутренний диаметр
|
|
/// </summary>
|
|
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
|
public double? InnerDiameter { get; set; }
|
|
|
|
/// <inheritdoc />
|
|
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
|
{
|
|
if (!OuterDiameter.HasValue && !InnerDiameter.HasValue)
|
|
yield break;
|
|
|
|
if (!OuterDiameter.HasValue)
|
|
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(OuterDiameter) });
|
|
|
|
if (!InnerDiameter.HasValue)
|
|
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(InnerDiameter) });
|
|
|
|
if (OuterDiameter <= InnerDiameter)
|
|
yield return new ValidationResult("Внешний диаметр не должен быть больше или равен внутреннему",
|
|
new[] { nameof(OuterDiameter) });
|
|
}
|
|
} |