forked from ddrilling/AsbCloudServer
107 lines
4.0 KiB
C#
107 lines
4.0 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel.DataAnnotations;
|
||
|
||
namespace AsbCloudApp.Data.ProcessMap;
|
||
|
||
/// <summary>
|
||
/// РТК план проработка скважины
|
||
/// </summary>
|
||
public class ProcessMapWellboreDevelopmentDto : IId, IWellRelated, IValidatableObject
|
||
{
|
||
/// <inheritdoc/>
|
||
public int Id { get; set; }
|
||
|
||
/// <inheritdoc/>
|
||
public int IdWell { get; set; }
|
||
|
||
/// <summary>
|
||
/// Id пользователя
|
||
/// </summary>
|
||
public int IdUser { get; set; }
|
||
|
||
/// <summary>
|
||
/// Дата последнего изменения
|
||
/// </summary>
|
||
public DateTimeOffset LastUpdate { get; set; }
|
||
|
||
/// <summary>
|
||
/// Стартовая глубина, м
|
||
/// </summary>
|
||
[Range(0, 99999.9, ErrorMessage = "Значение стартовой глубины должно быть в пределах от 0 до 99999.9")]
|
||
public double DepthStart { get; set; }
|
||
|
||
/// <summary>
|
||
/// Окончательная глубина, м
|
||
/// </summary>
|
||
[Range(0, 99999.9, ErrorMessage = "Значение окончательной глубины должно быть в пределах от 0 до 99999.9")]
|
||
public double DepthEnd { get; set; }
|
||
|
||
/// <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; }
|
||
|
||
/// <summary>
|
||
/// Комментарий
|
||
/// </summary>
|
||
public string? Comment { 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) });
|
||
|
||
yield break;
|
||
}
|
||
} |