using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.ProcessMaps; /// <inheritdoc/> public abstract class ProcessMapPlanBaseDto : IId, IWellRelated, IValidatableObject { /// <summary> /// Id скважины /// </summary> public int IdWell { get; set; } /// <summary> /// Id записи /// </summary> public int Id { get; set; } /// <summary> /// Тип секции /// </summary> [Range(1, int.MaxValue, ErrorMessage = "Id секции скважины не может быть меньше 1")] public int IdWellSectionType { get; set; } /// <summary> /// Название секции /// </summary> public string? Section { get; set; } /// <summary> /// Глубина по стволу от, м /// <para> /// на начало интервала /// </para> /// </summary> [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthStart { get; set; } /// <summary> /// Глубина по стволу до, м /// <para> /// на конец интервала /// </para> /// </summary> [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthEnd { get; set; } /// <inheritdoc/> public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (DepthEnd <= DepthStart) yield return new("Глубина окончания должна быть больше глубины начала", new string[] { nameof(DepthEnd) }); } }