2023-09-25 11:27:30 +05:00
using System ;
2023-09-29 12:06:46 +05:00
using System.Collections.Generic ;
2023-09-25 11:27:30 +05:00
using System.ComponentModel.DataAnnotations ;
namespace AsbCloudApp.Data.ProcessMap ;
/// <summary>
2023-09-26 10:04:20 +05:00
/// Р Т К план проработка скважины
2023-09-25 11:27:30 +05:00
/// </summary>
2023-09-29 12:06:46 +05:00
public class ProcessMapWellboreDevelopmentDto : IId , IWellRelated , IValidatableObject
2023-09-25 11:27:30 +05:00
{
/// <inheritdoc/>
public int Id { get ; set ; }
/// <inheritdoc/>
public int IdWell { get ; set ; }
2023-09-26 10:04:20 +05:00
/// <summary>
/// Id пользователя
/// </summary>
public int IdUser { get ; set ; }
2023-09-25 11:27:30 +05:00
/// <summary>
/// Дата последнего изменения
/// </summary>
public DateTimeOffset LastUpdate { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Стартовая глубина, м
2023-09-25 11:27:30 +05:00
/// </summary>
2023-09-25 12:03:41 +05:00
[Range(0, 99999.9, ErrorMessage = "Значение стартовой глубины должно быть в пределах от 0 до 99999.9")]
2023-09-25 11:27:30 +05:00
public double DepthStart { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Окончательная глубина, м
2023-09-25 11:27:30 +05:00
/// </summary>
2023-09-25 12:03:41 +05:00
[Range(0, 99999.9, ErrorMessage = "Значение окончательной глубины должно быть в пределах от 0 до 99999.9")]
2023-09-25 11:27:30 +05:00
public double DepthEnd { get ; set ; }
/// <summary>
/// Количество повторений
/// </summary>
[Range(0, 100, ErrorMessage = "Значение количества повторений должно быть в пределах от 0 до 100")]
public double Repeats { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Вращение при движении вверх, о б /мин
2023-09-25 11:27:30 +05:00
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение количества вращений вверх должно быть в пределах от 0 до 99999.9")]
public double SpinUpward { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Вращение при движении вниз, о б /мин
2023-09-25 11:27:30 +05:00
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение количества вращений вниз должно быть в пределах от 0 до 99999.9")]
public double SpinDownward { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Скорость подъёма, м/ч
2023-09-25 11:27:30 +05:00
/// </summary>
2023-09-25 12:03:41 +05:00
[Range(0, 99999.9, ErrorMessage = "Значение скорости подъёма должно быть в пределах от 0 до 99999.9")]
2023-09-25 11:27:30 +05:00
public double SpeedUpward { get ; set ; }
/// <summary>
/// Скорость спуска, м/ч
/// </summary>
2023-09-25 12:03:41 +05:00
[Range(0, 99999.9, ErrorMessage = "Значение скорости спуска должно быть в пределах от 0 до 99999.9")]
2023-09-25 11:27:30 +05:00
public double SpeedDownward { get ; set ; }
/// <summary>
/// Уставка зятяжки, т
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")]
2023-09-26 10:04:20 +05:00
public double SetpointDrag { get ; set ; }
2023-09-25 11:27:30 +05:00
/// <summary>
/// Уставка посадки, т
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")]
2023-09-26 10:04:20 +05:00
public double SetpointTight { get ; set ; }
2023-09-25 11:27:30 +05:00
/// <summary>
/// Давление, атм
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение давления должно быть в пределах от 0 до 99999.9")]
public double Pressure { get ; set ; }
/// <summary>
2023-09-26 10:04:20 +05:00
/// Момент, кН*м
2023-09-25 11:27:30 +05:00
/// </summary>
[Range(0, 99999.9, ErrorMessage = "Значение крутящего момента должно быть в пределах от 0 до 99999.9")]
public double Torque { get ; set ; }
/// <summary>
/// Комментарий
/// </summary>
public string? Comment { get ; set ; }
2023-09-29 12:06:46 +05:00
/// <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 ) } ) ;
yield break ;
}
2023-09-25 11:27:30 +05:00
}