using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.ProcessMaps; /// <summary> /// РТК план проработка скважины /// </summary> public class ProcessMapPlanWellReamDto : ProcessMapPlanBaseDto, IValidatableObject { /// <summary> /// Количество повторений /// </summary> [Range(0, 100, ErrorMessage = "Количество повторений должно быть в пределах от 0 до 100")] public double Repeats { get; set; } /// <summary> /// Вращение при движении вверх, об/мин /// </summary> [Range(0, 99999.9, ErrorMessage = "Количество вращений вверх должно быть в пределах от 0 до 99999.9")] public double SpinUpward { get; set; } /// <summary> /// Вращение при движении вниз, об/мин /// </summary> [Range(0, 99999.9, ErrorMessage = "Количество вращений вниз должно быть в пределах от 0 до 99999.9")] public double SpinDownward { get; set; } /// <summary> /// Скорость подъёма, м/ч /// </summary> [Range(0, 99999.9, ErrorMessage = "Скорость подъёма должна быть в пределах от 0 до 99999.9")] public double SpeedUpward { get; set; } /// <summary> /// Скорость спуска, м/ч /// </summary> [Range(0, 99999.9, ErrorMessage = "Скорость спуска должна быть в пределах от 0 до 99999.9")] public double SpeedDownward { get; set; } /// <summary> /// Уставка зятяжки, т /// </summary> [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")] public double SetpointDrag { get; set; } /// <summary> /// Уставка посадки, т /// </summary> [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")] public double SetpointTight { get; set; } /// <summary> /// Давление, атм /// </summary> [Range(0, 99999.9, ErrorMessage = "Давление должно быть в пределах от 0 до 99999.9")] public double Pressure { get; set; } /// <summary> /// Момент, кН*м /// </summary> [Range(0, 99999.9, ErrorMessage = "Крутящий момент должен быть в пределах от 0 до 99999.9")] public double Torque { get; set; } /// <inheritdoc/> public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (DepthEnd < DepthStart) yield return new ValidationResult( $"{nameof(DepthEnd)}:{DepthEnd:#0.0} меньше {nameof(DepthStart)}:{DepthStart:#0.0}", new[] { nameof(DepthEnd), nameof(DepthStart) }); } }