forked from ddrilling/AsbCloudServer
fix encoding to utf8 (without bom), u200b, line endings, tabs to 3 spaces, variants of minus char to base minus char
This commit is contained in:
parent
79b1795d63
commit
654b5f235e
@ -1,4 +1,4 @@
|
||||
using AsbCloudApp.Data;
|
||||
using AsbCloudApp.Data;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using AsbCloudApp.Data.SAUB;
|
||||
using AsbCloudApp.Data.SAUB;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AsbCloudApp.Comparators
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
|
||||
namespace System.Collections.Generic
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
using AsbCloudApp.Data.User;
|
||||
using AsbCloudApp.Data.User;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data;
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
|
@ -3,18 +3,18 @@ using System.ComponentModel.DataAnnotations;
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Статистика механической скорости проходки (МСП) по кусту
|
||||
/// Статистика механической скорости проходки (МСП) по кусту
|
||||
/// </summary>
|
||||
public class ClusterRopStatDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Макс. механическая скорость проходки по кусту
|
||||
/// Макс. механическая скорость проходки по кусту
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double RopMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Средняя механическая скорость проходки по кусту
|
||||
/// Средняя механическая скорость проходки по кусту
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double RopAverage { get; set; }
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -7,22 +7,22 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||
/// </summary>
|
||||
public class ProcessMapWellDrillingRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Режим бурения
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Режим бурения
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Мех. скорость
|
||||
/// </summary>
|
||||
[Required]
|
||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Глубина ствола
|
||||
/// </summary>
|
||||
public double? WellBoreDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина ствола
|
||||
/// </summary>
|
||||
public double? WellBoreDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Часы бурения
|
||||
|
@ -5,28 +5,28 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||
/// </summary>
|
||||
public class ScheduleRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Начало смены
|
||||
/// </summary>
|
||||
public TimeDto? ShiftStart { get; set; }
|
||||
/// <summary>
|
||||
/// Начало смены
|
||||
/// </summary>
|
||||
public TimeDto? ShiftStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Конец смены
|
||||
/// </summary>
|
||||
public TimeDto? ShiftEnd { get; set; }
|
||||
/// <summary>
|
||||
/// Конец смены
|
||||
/// </summary>
|
||||
public TimeDto? ShiftEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Имя бурильщика
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
/// <summary>
|
||||
/// Имя бурильщика
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Фамилия бурильщика
|
||||
/// </summary>
|
||||
public string? Surname { get; set; }
|
||||
/// <summary>
|
||||
/// Фамилия бурильщика
|
||||
/// </summary>
|
||||
public string? Surname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Отчество бурильщика
|
||||
/// </summary>
|
||||
public string? Patronymic { get; set; }
|
||||
/// <summary>
|
||||
/// Отчество бурильщика
|
||||
/// </summary>
|
||||
public string? Patronymic { get; set; }
|
||||
}
|
@ -5,13 +5,13 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
||||
/// </summary>
|
||||
public class SignBlockDto : ItemInfoDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Подпись мастера буровой
|
||||
/// </summary>
|
||||
public SignRecordDto? DrillingMaster { get; set; }
|
||||
/// <summary>
|
||||
/// Подпись мастера буровой
|
||||
/// </summary>
|
||||
public SignRecordDto? DrillingMaster { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Подпись супервайзера
|
||||
/// </summary>
|
||||
public SignRecordDto? Supervisor { get; set; }
|
||||
/// <summary>
|
||||
/// Подпись супервайзера
|
||||
/// </summary>
|
||||
public SignRecordDto? Supervisor { get; set; }
|
||||
}
|
@ -7,11 +7,11 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Sign;
|
||||
/// </summary>
|
||||
public class SignRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Name { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Фамилия
|
||||
@ -19,14 +19,14 @@ public class SignRecordDto
|
||||
[Required]
|
||||
public string Surname { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Отчество
|
||||
/// </summary>
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{Surname} {Name} {Patronymic}";
|
||||
}
|
||||
/// <summary>
|
||||
/// Отчество
|
||||
/// </summary>
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{Surname} {Name} {Patronymic}";
|
||||
}
|
||||
}
|
@ -9,34 +9,34 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||
/// </summary>
|
||||
public class SubsystemBlockDto : ItemInfoDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Длина ствола скважины
|
||||
/// </summary>
|
||||
public double? Wellbore { get; set; }
|
||||
/// <summary>
|
||||
/// Длина ствола скважины
|
||||
/// </summary>
|
||||
public double? Wellbore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Кол-во замеров за сутки
|
||||
/// </summary>
|
||||
public double? MeasurementsPerDay { get; set; }
|
||||
/// <summary>
|
||||
/// Кол-во замеров за сутки
|
||||
/// </summary>
|
||||
public double? MeasurementsPerDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Общая плановая мех. скорость
|
||||
/// </summary>
|
||||
public double? TotalRopPlan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Отклонение по ГГД, сут
|
||||
/// </summary>
|
||||
public double? TvgLagDays { get; set; }
|
||||
/// <summary>
|
||||
/// Общая плановая мех. скорость
|
||||
/// </summary>
|
||||
public double? TotalRopPlan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Отклонение по ГГД, сут
|
||||
/// </summary>
|
||||
public double? TvgLagDays { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Рекомендации специалиста
|
||||
/// </summary>
|
||||
public string? Comment { get; set; }
|
||||
/// <summary>
|
||||
/// Рекомендации специалиста
|
||||
/// </summary>
|
||||
public string? Comment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public IEnumerable<SubsystemRecordDto> Subsystems { get; set; } = Enumerable.Empty<SubsystemRecordDto>();
|
||||
/// <summary>
|
||||
/// Подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public IEnumerable<SubsystemRecordDto> Subsystems { get; set; } = Enumerable.Empty<SubsystemRecordDto>();
|
||||
}
|
@ -7,19 +7,19 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||
/// </summary>
|
||||
public class SubsystemParametersDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Сумма изменения глубин при включенной подсистеме
|
||||
/// </summary>
|
||||
public double? SumDepthInterval { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Наработка подсистемы
|
||||
/// </summary>
|
||||
public double? UsedTimeHours { get; set; }
|
||||
/// <summary>
|
||||
/// Сумма изменения глубин при включенной подсистеме
|
||||
/// </summary>
|
||||
public double? SumDepthInterval { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Наработка подсистемы
|
||||
/// </summary>
|
||||
public double? UsedTimeHours { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Коэффициент использования
|
||||
/// </summary>
|
||||
[Range(0, 1)]
|
||||
public double? KUsage { get; set; }
|
||||
/// <summary>
|
||||
/// Коэффициент использования
|
||||
/// </summary>
|
||||
[Range(0, 1)]
|
||||
public double? KUsage { get; set; }
|
||||
}
|
@ -7,19 +7,19 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems;
|
||||
/// </summary>
|
||||
public class SubsystemRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Название подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Использование подсистемы за сутки
|
||||
/// </summary>
|
||||
public SubsystemParametersDto? UsagePerDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Использование подсистемы за скважину
|
||||
/// </summary>
|
||||
public SubsystemParametersDto? UsagePerWell { get; set; }
|
||||
/// <summary>
|
||||
/// Название подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Использование подсистемы за сутки
|
||||
/// </summary>
|
||||
public SubsystemParametersDto? UsagePerDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Использование подсистемы за скважину
|
||||
/// </summary>
|
||||
public SubsystemParametersDto? UsagePerWell { get; set; }
|
||||
}
|
@ -9,29 +9,29 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||
/// </summary>
|
||||
public class TimeBalanceBlockDto : ItemInfoDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор секции
|
||||
/// </summary>
|
||||
[Range(1, int.MaxValue)]
|
||||
public int IdSection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название секции
|
||||
/// </summary>
|
||||
public string? SectionName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Проходка скважины
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> WellDepth { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Идентификатор секции
|
||||
/// </summary>
|
||||
[Range(1, int.MaxValue)]
|
||||
public int IdSection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название секции
|
||||
/// </summary>
|
||||
public string? SectionName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Проходка скважины
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> WellDepth { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Кол-во наращиваний за сутки
|
||||
/// </summary>
|
||||
public double? WellOperationSlipsTimeCount { get; set; }
|
||||
/// <summary>
|
||||
/// Кол-во наращиваний за сутки
|
||||
/// </summary>
|
||||
public double? WellOperationSlipsTimeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Операции на скважине
|
||||
/// </summary>
|
||||
public IEnumerable<TimeBalanceRecordDto> WellOperations { get; set; } = Enumerable.Empty<TimeBalanceRecordDto>();
|
||||
/// <summary>
|
||||
/// Операции на скважине
|
||||
/// </summary>
|
||||
public IEnumerable<TimeBalanceRecordDto> WellOperations { get; set; } = Enumerable.Empty<TimeBalanceRecordDto>();
|
||||
}
|
@ -5,31 +5,31 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.TimeBalance;
|
||||
/// </summary>
|
||||
public class TimeBalanceRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Мех. бурение - 1
|
||||
/// Снятие замера, ориентирование - 2
|
||||
/// Наращивание, выход на режим - 3
|
||||
/// Промывка, проработка - 4
|
||||
/// </summary>
|
||||
public int IdWellOperation { get; set; }
|
||||
/// <summary>
|
||||
/// Мех. бурение - 1
|
||||
/// Снятие замера, ориентирование - 2
|
||||
/// Наращивание, выход на режим - 3
|
||||
/// Промывка, проработка - 4
|
||||
/// </summary>
|
||||
public int IdWellOperation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Продолжительность операции, ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> DurationHours { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Продолжительность операции, ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> DurationHours { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Отклонение за секцию
|
||||
/// </summary>
|
||||
public double? DrillingDeviationPerSection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Отклонение за сутки
|
||||
/// </summary>
|
||||
public double? DrillingDeviationPerDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Причина отклонения
|
||||
/// </summary>
|
||||
public string? ReasonDeviation { get; set; }
|
||||
/// <summary>
|
||||
/// Отклонение за секцию
|
||||
/// </summary>
|
||||
public double? DrillingDeviationPerSection { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Отклонение за сутки
|
||||
/// </summary>
|
||||
public double? DrillingDeviationPerDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Причина отклонения
|
||||
/// </summary>
|
||||
public string? ReasonDeviation { get; set; }
|
||||
}
|
@ -5,23 +5,23 @@ namespace AsbCloudApp.Data.DailyReport.Blocks;
|
||||
/// </summary>
|
||||
public class TrajectoryBlockDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Глубина по стволу
|
||||
/// </summary>
|
||||
public double? WellboreDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина вертикальная
|
||||
/// </summary>
|
||||
public double? VerticalDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Угол зенитный
|
||||
/// </summary>
|
||||
public double? ZenithAngle { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина по стволу
|
||||
/// </summary>
|
||||
public double? WellboreDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина вертикальная
|
||||
/// </summary>
|
||||
public double? VerticalDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Угол зенитный
|
||||
/// </summary>
|
||||
public double? ZenithAngle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Азимут Географ.
|
||||
/// </summary>
|
||||
public double? AzimuthGeo { get; set; }
|
||||
/// <summary>
|
||||
/// Азимут Географ.
|
||||
/// </summary>
|
||||
public double? AzimuthGeo { get; set; }
|
||||
}
|
@ -13,11 +13,11 @@ public class WellOperationBlockDto
|
||||
/// Продолжительность бурения за секцию
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double SectionDrillingHours { get; set; }
|
||||
public double SectionDrillingHours { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Операции проводимые на скважине
|
||||
/// </summary>
|
||||
[Required]
|
||||
public IEnumerable<WellOperationRecordDto> WellOperations { get; set; } = Enumerable.Empty<WellOperationRecordDto>();
|
||||
/// <summary>
|
||||
/// Операции проводимые на скважине
|
||||
/// </summary>
|
||||
[Required]
|
||||
public IEnumerable<WellOperationRecordDto> WellOperations { get; set; } = Enumerable.Empty<WellOperationRecordDto>();
|
||||
}
|
@ -5,13 +5,13 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation;
|
||||
/// </summary>
|
||||
public class WellOperationRecordDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Название категории
|
||||
/// </summary>
|
||||
public string? CategoryName { get; set; }
|
||||
/// <summary>
|
||||
/// Название категории
|
||||
/// </summary>
|
||||
public string? CategoryName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Продолжительность операции
|
||||
/// </summary>
|
||||
public double? DurationHours { get; set; }
|
||||
/// <summary>
|
||||
/// Продолжительность операции
|
||||
/// </summary>
|
||||
public double? DurationHours { get; set; }
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
@ -14,15 +14,15 @@ namespace AsbCloudApp.Data.DailyReport;
|
||||
/// Суточный отчёт
|
||||
/// </summary>
|
||||
public class DailyReportDto : IId,
|
||||
IWellRelated
|
||||
IWellRelated
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int IdWell { get; set; }
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int IdWell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название скважины
|
||||
@ -30,51 +30,51 @@ public class DailyReportDto : IId,
|
||||
[Required]
|
||||
public string WellCaption { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Название типа скважины
|
||||
/// </summary>
|
||||
public string? WellType { get; set; }
|
||||
/// <summary>
|
||||
/// Название типа скважины
|
||||
/// </summary>
|
||||
public string? WellType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название куста
|
||||
/// </summary>
|
||||
public string? Cluster { get; set; }
|
||||
/// <summary>
|
||||
/// Название куста
|
||||
/// </summary>
|
||||
public string? Cluster { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Заказчик
|
||||
/// </summary>
|
||||
public string? Customer { get; set; }
|
||||
/// <summary>
|
||||
/// Заказчик
|
||||
/// </summary>
|
||||
public string? Customer { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Подрядчик
|
||||
/// </summary>
|
||||
public string? Contractor { get; set; }
|
||||
/// <summary>
|
||||
/// Подрядчик
|
||||
/// </summary>
|
||||
public string? Contractor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Месторождение
|
||||
/// </summary>
|
||||
public string? Deposit { get; set; }
|
||||
/// <summary>
|
||||
/// Месторождение
|
||||
/// </summary>
|
||||
public string? Deposit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина забоя на дату начала интервала
|
||||
/// </summary>
|
||||
public double? DepthStart { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина забоя на дату начала интервала
|
||||
/// </summary>
|
||||
public double? DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина забоя на дату окончания интервала
|
||||
/// </summary>
|
||||
public double? DepthEnd { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина забоя на дату окончания интервала
|
||||
/// </summary>
|
||||
public double? DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата формирования отчёта
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateOnly Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата последнего обновления
|
||||
/// </summary>
|
||||
public DateTimeOffset? DateLastUpdate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата последнего обновления
|
||||
/// </summary>
|
||||
public DateTimeOffset? DateLastUpdate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Блок фактической траектории
|
||||
@ -88,20 +88,20 @@ public class DailyReportDto : IId,
|
||||
[Required]
|
||||
public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Баланс времени
|
||||
/// </summary>
|
||||
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
|
||||
/// <summary>
|
||||
/// Баланс времени
|
||||
/// </summary>
|
||||
public TimeBalanceBlockDto? TimeBalanceBlock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Наработка подсистем
|
||||
/// </summary>
|
||||
public SubsystemBlockDto? SubsystemBlock { get; set; }
|
||||
/// <summary>
|
||||
/// Наработка подсистем
|
||||
/// </summary>
|
||||
public SubsystemBlockDto? SubsystemBlock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Подпись
|
||||
/// </summary>
|
||||
public SignBlockDto? SignBlock { get; set; }
|
||||
/// <summary>
|
||||
/// Подпись
|
||||
/// </summary>
|
||||
public SignBlockDto? SignBlock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Блок расписания
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using AsbCloudApp.Data.WellOperation;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.DetectedOperation
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using AsbCloudApp.Data.WellOperation;
|
||||
@ -10,82 +10,82 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
||||
/// </summary>
|
||||
public class DetectedOperationDto : IId
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id телеметрии
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int IdTelemetry { get; set; }
|
||||
/// <summary>
|
||||
/// Id телеметрии
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int IdTelemetry { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id названия/описания операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int IdCategory { get; set; }
|
||||
/// <summary>
|
||||
/// Id названия/описания операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int IdCategory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id пользователя панели на момент начала операции
|
||||
/// </summary>
|
||||
public int? IdUserAtStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id пользователя изменившего операцию
|
||||
/// </summary>
|
||||
public int? IdEditor { get; set; }
|
||||
/// <summary>
|
||||
/// Id пользователя панели на момент начала операции
|
||||
/// </summary>
|
||||
public int? IdUserAtStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id пользователя изменившего операцию
|
||||
/// </summary>
|
||||
public int? IdEditor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата завершения операции в часовом поясе скважины
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTimeOffset DateEnd { get; set; }
|
||||
/// <summary>
|
||||
/// Дата завершения операции в часовом поясе скважины
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTimeOffset DateEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата начала операции в часовом поясе скважины
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
/// <summary>
|
||||
/// Дата начала операции в часовом поясе скважины
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// глубина на завершения операции, м
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DepthEnd { get; set; }
|
||||
/// <summary>
|
||||
/// глубина на завершения операции, м
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// глубина на начало операции, м
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DepthStart { get; set; }
|
||||
/// <summary>
|
||||
/// глубина на начало операции, м
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Продолжительность операции в минутах
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
|
||||
|
||||
/// <summary>
|
||||
/// название/описание операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Включенные подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public EnabledSubsystems EnabledSubsystems { get; set; }
|
||||
/// <summary>
|
||||
/// Продолжительность операции в минутах
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
|
||||
|
||||
/// <summary>
|
||||
/// название/описание операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public WellOperationCategoryDto OperationCategory { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Включенные подсистемы
|
||||
/// </summary>
|
||||
[Required]
|
||||
public EnabledSubsystems EnabledSubsystems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Значение ключевой параметра операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double Value { get; set; }
|
||||
/// <summary>
|
||||
/// Значение ключевой параметра операции
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double Value { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Доп. инфо по операции
|
||||
/// </summary>
|
||||
public IDictionary<string, object> ExtraData { get; set; } = new Dictionary<string, object>();
|
||||
/// <summary>
|
||||
/// Доп. инфо по операции
|
||||
/// </summary>
|
||||
public IDictionary<string, object> ExtraData { get; set; } = new Dictionary<string, object>();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.DetectedOperation
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.DetectedOperation
|
||||
namespace AsbCloudApp.Data.DetectedOperation
|
||||
{
|
||||
/// <summary>
|
||||
/// Автоматически определяемая операция
|
||||
|
@ -5,101 +5,101 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
||||
/// </summary>
|
||||
public struct EnabledSubsystems
|
||||
{
|
||||
private int value;
|
||||
private int value;
|
||||
|
||||
private EnabledSubsystems(int value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static implicit operator int(EnabledSubsystems param) =>
|
||||
param.value;
|
||||
private EnabledSubsystems(int value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static implicit operator int(EnabledSubsystems param) =>
|
||||
param.value;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public static implicit operator EnabledSubsystems(int param) =>
|
||||
new(param);
|
||||
/// <inheritdoc/>
|
||||
public static implicit operator EnabledSubsystems(int param) =>
|
||||
new(param);
|
||||
|
||||
/// <summary>
|
||||
/// Бурение ротором
|
||||
/// </summary>
|
||||
public bool IsAutoRotor
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoRotor);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoRotor);
|
||||
}
|
||||
/// <summary>
|
||||
/// Бурение ротором
|
||||
/// </summary>
|
||||
public bool IsAutoRotor
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoRotor);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoRotor);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Бурение слайдом
|
||||
/// </summary>
|
||||
public bool IsAutoSlide
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSlide);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSlide);
|
||||
}
|
||||
/// <summary>
|
||||
/// Бурение слайдом
|
||||
/// </summary>
|
||||
public bool IsAutoSlide
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSlide);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSlide);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ПРОРАБОТКА
|
||||
/// </summary>
|
||||
public bool IsAutoConditionig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoConditionig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoConditionig);
|
||||
}
|
||||
/// <summary>
|
||||
/// ПРОРАБОТКА
|
||||
/// </summary>
|
||||
public bool IsAutoConditionig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoConditionig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoConditionig);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// СПУСК СПО
|
||||
/// </summary>
|
||||
public bool IsAutoSinking
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSinking);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSinking);
|
||||
}
|
||||
/// <summary>
|
||||
/// СПУСК СПО
|
||||
/// </summary>
|
||||
public bool IsAutoSinking
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoSinking);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSinking);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ СПО
|
||||
/// </summary>
|
||||
public bool IsAutoLifting
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLifting);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLifting);
|
||||
}
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ СПО
|
||||
/// </summary>
|
||||
public bool IsAutoLifting
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLifting);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLifting);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||
/// </summary>
|
||||
public bool IsAutoLiftingWithConditionig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||
}
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||
/// </summary>
|
||||
public bool IsAutoLiftingWithConditionig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLiftingWithConditionig);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Блокировка
|
||||
/// </summary>
|
||||
public bool IsAutoBlocknig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoBlocknig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoBlocknig);
|
||||
}
|
||||
/// <summary>
|
||||
/// Блокировка
|
||||
/// </summary>
|
||||
public bool IsAutoBlocknig
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoBlocknig);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoBlocknig);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Осцилляция
|
||||
/// </summary>
|
||||
public bool IsAutoOscillation
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoOscillation);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoOscillation);
|
||||
}
|
||||
/// <summary>
|
||||
/// Осцилляция
|
||||
/// </summary>
|
||||
public bool IsAutoOscillation
|
||||
{
|
||||
get => IsEnabledSubsystem(EnabledSubsystemsFlags.AutoOscillation);
|
||||
set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoOscillation);
|
||||
}
|
||||
|
||||
private bool IsEnabledSubsystem(EnabledSubsystemsFlags flag) =>
|
||||
(value & (int)flag) > 0;
|
||||
private bool IsEnabledSubsystem(EnabledSubsystemsFlags flag) =>
|
||||
(value & (int)flag) > 0;
|
||||
|
||||
private void UpdateEnabledSubsystems(bool isEnable, EnabledSubsystemsFlags flag)
|
||||
{
|
||||
if (isEnable)
|
||||
value |= (int)flag;
|
||||
else
|
||||
value &= ~(int)flag;
|
||||
}
|
||||
private void UpdateEnabledSubsystems(bool isEnable, EnabledSubsystemsFlags flag)
|
||||
{
|
||||
if (isEnable)
|
||||
value |= (int)flag;
|
||||
else
|
||||
value &= ~(int)flag;
|
||||
}
|
||||
}
|
@ -8,43 +8,43 @@ namespace AsbCloudApp.Data.DetectedOperation;
|
||||
[Flags]
|
||||
public enum EnabledSubsystemsFlags
|
||||
{
|
||||
/// <summary>
|
||||
/// Автоподача долота
|
||||
/// </summary>
|
||||
AutoRotor = 1 << 0,
|
||||
/// <summary>
|
||||
/// Автоподача долота
|
||||
/// </summary>
|
||||
AutoRotor = 1 << 0,
|
||||
|
||||
/// <summary>
|
||||
/// БУРЕНИЕ В СЛАЙДЕ
|
||||
/// </summary>
|
||||
AutoSlide = 1 << 1,
|
||||
/// <summary>
|
||||
/// БУРЕНИЕ В СЛАЙДЕ
|
||||
/// </summary>
|
||||
AutoSlide = 1 << 1,
|
||||
|
||||
/// <summary>
|
||||
/// ПРОРАБОТКА
|
||||
/// </summary>
|
||||
AutoConditionig = 1 << 2,
|
||||
/// <summary>
|
||||
/// ПРОРАБОТКА
|
||||
/// </summary>
|
||||
AutoConditionig = 1 << 2,
|
||||
|
||||
/// <summary>
|
||||
/// СПУСК СПО
|
||||
/// </summary>
|
||||
AutoSinking = 1 << 3,
|
||||
/// <summary>
|
||||
/// СПУСК СПО
|
||||
/// </summary>
|
||||
AutoSinking = 1 << 3,
|
||||
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ СПО
|
||||
/// </summary>
|
||||
AutoLifting = 1 << 4,
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ СПО
|
||||
/// </summary>
|
||||
AutoLifting = 1 << 4,
|
||||
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||
/// </summary>
|
||||
AutoLiftingWithConditionig = 1 << 5,
|
||||
/// <summary>
|
||||
/// ПОДЪЕМ С ПРОРАБОТКОЙ
|
||||
/// </summary>
|
||||
AutoLiftingWithConditionig = 1 << 5,
|
||||
|
||||
/// <summary>
|
||||
/// блокировка
|
||||
/// </summary>
|
||||
AutoBlocknig = 1 << 6,
|
||||
/// <summary>
|
||||
/// блокировка
|
||||
/// </summary>
|
||||
AutoBlocknig = 1 << 6,
|
||||
|
||||
/// <summary>
|
||||
/// осцилляция
|
||||
/// </summary>
|
||||
AutoOscillation = 1 << 7,
|
||||
/// <summary>
|
||||
/// осцилляция
|
||||
/// </summary>
|
||||
AutoOscillation = 1 << 7,
|
||||
}
|
@ -4,7 +4,7 @@ namespace AsbCloudApp.Data
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// DTO параметров бурения
|
||||
/// DTO параметров бурения
|
||||
/// </summary>
|
||||
public class DrillParamsDto : IId, IWellRelated
|
||||
{
|
||||
@ -15,7 +15,7 @@ namespace AsbCloudApp.Data
|
||||
public int IdWell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина интервала
|
||||
/// Глубина интервала
|
||||
/// </summary>
|
||||
public MinMaxDto<double> Depth { get; set; } = null!;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using AsbCloudApp.Data.SAUB;
|
||||
using AsbCloudApp.Data.SAUB;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data.DrillTestReport
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.DrillTestReport
|
||||
|
@ -4,22 +4,22 @@ using AsbCloudApp.Data.Subsystems;
|
||||
namespace AsbCloudApp.Data;
|
||||
|
||||
/// <summary>
|
||||
/// статистика наработки по бурильщикам
|
||||
/// статистика наработки по бурильщикам
|
||||
/// </summary>
|
||||
public class DrillerDetectedOperationStatDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Статистики подсистем
|
||||
/// Статистики подсистем
|
||||
/// </summary>
|
||||
public IEnumerable<SubsystemStatDto> Statistic { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Расписание бурильщика
|
||||
/// Расписание бурильщика
|
||||
/// </summary>
|
||||
public ScheduleDto Schedule { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Скважина
|
||||
/// Скважина
|
||||
/// </summary>
|
||||
public WellDto Well { get; set; } = null!;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using AsbCloudApp.Data.User;
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
@ -5,7 +5,7 @@ using AsbCloudApp.Data.User;
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Отметка для файла
|
||||
/// Отметка для файла
|
||||
/// </summary>
|
||||
public class FileMarkDto: IId
|
||||
{
|
||||
@ -14,42 +14,42 @@ namespace AsbCloudApp.Data
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// id файла
|
||||
/// id файла
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Range(1, int.MaxValue, ErrorMessage = "Id файла не может быть меньше 1")]
|
||||
[Range(1, int.MaxValue, ErrorMessage = "Id файла не может быть меньше 1")]
|
||||
public int IdFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 0 - отклонен
|
||||
/// 1 - согласован
|
||||
/// 0 - отклонен
|
||||
/// 1 - согласован
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Range(0, int.MaxValue, ErrorMessage = "Id категории действия с файлом не может быть меньше 1")]
|
||||
[Range(0, int.MaxValue, ErrorMessage = "Id категории действия с файлом не может быть меньше 1")]
|
||||
public int IdMarkType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// дата/время добавления.
|
||||
/// Необязательно указывать в запросе на создание.
|
||||
/// дата/время добавления.
|
||||
/// Необязательно указывать в запросе на создание.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTimeOffset DateCreated { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Полезный комментарий
|
||||
/// Полезный комментарий
|
||||
/// </summary>
|
||||
[StringLength(4096, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 4096 символов")]
|
||||
[StringLength(4096, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 4096 символов")]
|
||||
public string? Comment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// признак удаления отметки
|
||||
/// признак удаления отметки
|
||||
/// </summary>
|
||||
[Required]
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Пользователь создающий отметку.
|
||||
/// Необязательно указывать в запросе на создание.
|
||||
/// Пользователь создающий отметку.
|
||||
/// Необязательно указывать в запросе на создание.
|
||||
/// </summary>
|
||||
public UserDto? User { get; set; }
|
||||
}
|
||||
|
@ -7,228 +7,228 @@ namespace AsbCloudApp.Data.GTR;
|
||||
/// </summary>
|
||||
public class GtrWitsDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Дата получения записи
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Забой (скважины), м
|
||||
/// </summary>
|
||||
public float? DEPTMEAS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Долото, м
|
||||
/// </summary>
|
||||
public float DEPTBITM { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Вес на крюке
|
||||
/// </summary>
|
||||
public float? HKLA { get; set; }
|
||||
/// <summary>
|
||||
/// Дата получения записи
|
||||
/// </summary>
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Забой (скважины), м
|
||||
/// </summary>
|
||||
public float? DEPTMEAS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Долото, м
|
||||
/// </summary>
|
||||
public float DEPTBITM { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Вес на крюке
|
||||
/// </summary>
|
||||
public float? HKLA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Высота крюка
|
||||
/// </summary>
|
||||
public float? BLKPOS { get; set; }
|
||||
/// <summary>
|
||||
/// Высота крюка
|
||||
/// </summary>
|
||||
public float? BLKPOS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка на долото
|
||||
/// </summary>
|
||||
public float? WOBA { get; set; }
|
||||
/// <summary>
|
||||
/// Нагрузка на долото
|
||||
/// </summary>
|
||||
public float? WOBA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Момент на роторе/ВСП
|
||||
/// </summary>
|
||||
public float? TORQA { get; set; }
|
||||
/// <summary>
|
||||
/// Момент на роторе/ВСП
|
||||
/// </summary>
|
||||
public float? TORQA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Давление на входе (на стояке)
|
||||
/// </summary>
|
||||
public float? SPPA { get; set; }
|
||||
/// <summary>
|
||||
/// Давление на входе (на стояке)
|
||||
/// </summary>
|
||||
public float? SPPA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Обороты ротора/ВСП
|
||||
/// </summary>
|
||||
public float? RPMA { get; set; }
|
||||
/// <summary>
|
||||
/// Обороты ротора/ВСП
|
||||
/// </summary>
|
||||
public float? RPMA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Механическая скорость
|
||||
/// </summary>
|
||||
public float? ROPA { get; set; }
|
||||
/// <summary>
|
||||
/// Механическая скорость
|
||||
/// </summary>
|
||||
public float? ROPA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость инструмента вверх
|
||||
/// </summary>
|
||||
public float? RSUX { get; set; }
|
||||
/// <summary>
|
||||
/// Скорость инструмента вверх
|
||||
/// </summary>
|
||||
public float? RSUX { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Скорость инструмента вниз
|
||||
/// </summary>
|
||||
public float? RSDX { get; set; }
|
||||
/// <summary>
|
||||
/// Скорость инструмента вниз
|
||||
/// </summary>
|
||||
public float? RSDX { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Расход на входе
|
||||
/// </summary>
|
||||
public float? MFIA { get; set; }
|
||||
/// <summary>
|
||||
/// Расход на входе
|
||||
/// </summary>
|
||||
public float? MFIA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Расход на выходе
|
||||
/// </summary>
|
||||
public float? MFOA { get; set; }
|
||||
/// <summary>
|
||||
/// Расход на выходе
|
||||
/// </summary>
|
||||
public float? MFOA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Температура на входе
|
||||
/// </summary>
|
||||
public float? MTIA { get; set; }
|
||||
/// <summary>
|
||||
/// Температура на входе
|
||||
/// </summary>
|
||||
public float? MTIA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Температура на выходе
|
||||
/// </summary>
|
||||
public float? MTOA { get; set; }
|
||||
/// <summary>
|
||||
/// Температура на выходе
|
||||
/// </summary>
|
||||
public float? MTOA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ходы насоса №1
|
||||
/// </summary>
|
||||
public float? SPM1 { get; set; }
|
||||
/// <summary>
|
||||
/// Ходы насоса №1
|
||||
/// </summary>
|
||||
public float? SPM1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ходы насоса №2
|
||||
/// </summary>
|
||||
public float? SPM2 { get; set; }
|
||||
/// <summary>
|
||||
/// Ходы насоса №2
|
||||
/// </summary>
|
||||
public float? SPM2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ходы насоса №3
|
||||
/// </summary>
|
||||
public float? SPM3 { get; set; }
|
||||
/// <summary>
|
||||
/// Ходы насоса №3
|
||||
/// </summary>
|
||||
public float? SPM3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Общий объем бурового раствора на поверхности
|
||||
/// </summary>
|
||||
public float? TVOLACT { get; set; }
|
||||
/// <summary>
|
||||
/// Общий объем бурового раствора на поверхности
|
||||
/// </summary>
|
||||
public float? TVOLACT { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в доливной емкости №1
|
||||
/// </summary>
|
||||
public float? TTVOL1 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в доливной емкости №1
|
||||
/// </summary>
|
||||
public float? TTVOL1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в доливной емкости №2
|
||||
/// </summary>
|
||||
public float? TTVOL2 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в доливной емкости №2
|
||||
/// </summary>
|
||||
public float? TTVOL2 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №1
|
||||
/// </summary>
|
||||
public float? TVOL01 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №1
|
||||
/// </summary>
|
||||
public float? TVOL01 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №2
|
||||
/// </summary>
|
||||
public float? TVOL02 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №2
|
||||
/// </summary>
|
||||
public float? TVOL02 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №3
|
||||
/// </summary>
|
||||
public float? TVOL03 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №3
|
||||
/// </summary>
|
||||
public float? TVOL03 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №4
|
||||
/// </summary>
|
||||
public float? TVOL04 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №4
|
||||
/// </summary>
|
||||
public float? TVOL04 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №5
|
||||
/// </summary>
|
||||
public float? TVOL05 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №5
|
||||
/// </summary>
|
||||
public float? TVOL05 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №6
|
||||
/// </summary>
|
||||
public float? TVOL06 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №6
|
||||
/// </summary>
|
||||
public float? TVOL06 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №7
|
||||
/// </summary>
|
||||
public float? TVOL07 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №7
|
||||
/// </summary>
|
||||
public float? TVOL07 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №8
|
||||
/// </summary>
|
||||
public float? TVOL08 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №8
|
||||
/// </summary>
|
||||
public float? TVOL08 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №9
|
||||
/// </summary>
|
||||
public float? TVOL09 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №9
|
||||
/// </summary>
|
||||
public float? TVOL09 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №10
|
||||
/// </summary>
|
||||
public float? TVOL10 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №10
|
||||
/// </summary>
|
||||
public float? TVOL10 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №11
|
||||
/// </summary>
|
||||
public float? TVOL11 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №11
|
||||
/// </summary>
|
||||
public float? TVOL11 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №12
|
||||
/// </summary>
|
||||
public float? TVOL12 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №12
|
||||
/// </summary>
|
||||
public float? TVOL12 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №13
|
||||
/// </summary>
|
||||
public float? TVOL13 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №13
|
||||
/// </summary>
|
||||
public float? TVOL13 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №14
|
||||
/// </summary>
|
||||
public float? TVOL14 { get; set; }
|
||||
/// <summary>
|
||||
/// Объем бурового раствора в емкости №14
|
||||
/// </summary>
|
||||
public float? TVOL14 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Плотность (удельный вес) бурового раствора на выходе
|
||||
/// </summary>
|
||||
public float? MDOA { get; set; }
|
||||
/// <summary>
|
||||
/// Плотность (удельный вес) бурового раствора на выходе
|
||||
/// </summary>
|
||||
public float? MDOA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Плотность (удельный вес) бурового раствора на входе
|
||||
/// </summary>
|
||||
public float? MDIA { get; set; }
|
||||
/// <summary>
|
||||
/// Плотность (удельный вес) бурового раствора на входе
|
||||
/// </summary>
|
||||
public float? MDIA { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание метана
|
||||
/// </summary>
|
||||
public float? METHANE { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание метана
|
||||
/// </summary>
|
||||
public float? METHANE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание этана
|
||||
/// </summary>
|
||||
public float? ETHANE { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание этана
|
||||
/// </summary>
|
||||
public float? ETHANE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание пропана
|
||||
/// </summary>
|
||||
public float? PROPANE { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание пропана
|
||||
/// </summary>
|
||||
public float? PROPANE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание бутана
|
||||
/// </summary>
|
||||
public float? IBUTANE { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание бутана
|
||||
/// </summary>
|
||||
public float? IBUTANE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание пентана
|
||||
/// </summary>
|
||||
public float? NBUTANE { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание пентана
|
||||
/// </summary>
|
||||
public float? NBUTANE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание углеводородов
|
||||
/// </summary>
|
||||
public float? HydrocarbonPercentage => METHANE + ETHANE + PROPANE + IBUTANE + NBUTANE;
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание газов
|
||||
/// </summary>
|
||||
public float? GASA { get; set; }
|
||||
/// <summary>
|
||||
/// Процентное содержание углеводородов
|
||||
/// </summary>
|
||||
public float? HydrocarbonPercentage => METHANE + ETHANE + PROPANE + IBUTANE + NBUTANE;
|
||||
|
||||
/// <summary>
|
||||
/// Процентное содержание газов
|
||||
/// </summary>
|
||||
public float? GASA { get; set; }
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.GTR
|
||||
namespace AsbCloudApp.Data.GTR
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс позволяющий хранить значение неопределенного типа.
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.GTR
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Интерфейс данных с Id
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// точка на карте
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Well related DTO
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections;
|
||||
using System.Collections;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -8,26 +8,26 @@ namespace AsbCloudApp.Data.Manuals;
|
||||
/// </summary>
|
||||
public class ManualDirectoryDto : IId
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Id родительской директории
|
||||
/// </summary>
|
||||
public int? IdParent { get; set; }
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Id родительской директории
|
||||
/// </summary>
|
||||
public int? IdParent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Вложенные директории
|
||||
/// </summary>
|
||||
public IEnumerable<ManualDirectoryDto> Children { get; set; } = Enumerable.Empty<ManualDirectoryDto>();
|
||||
/// <summary>
|
||||
/// Вложенные директории
|
||||
/// </summary>
|
||||
public IEnumerable<ManualDirectoryDto> Children { get; set; } = Enumerable.Empty<ManualDirectoryDto>();
|
||||
|
||||
/// <summary>
|
||||
/// Хранимые инструкции
|
||||
/// </summary>
|
||||
public IEnumerable<ManualDto> Manuals { get; set; } = Enumerable.Empty<ManualDto>();
|
||||
/// <summary>
|
||||
/// Хранимые инструкции
|
||||
/// </summary>
|
||||
public IEnumerable<ManualDto> Manuals { get; set; } = Enumerable.Empty<ManualDto>();
|
||||
}
|
@ -7,31 +7,31 @@ namespace AsbCloudApp.Data.Manuals;
|
||||
/// </summary>
|
||||
public class ManualDto : IId
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Дата загрузки
|
||||
/// </summary>
|
||||
public DateTimeOffset DateDownload { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id автора
|
||||
/// </summary>
|
||||
public int IdAuthor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id директории
|
||||
/// </summary>
|
||||
public int IdDirectory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id категории файла
|
||||
/// </summary>
|
||||
public int IdCategory { get; set; }
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Дата загрузки
|
||||
/// </summary>
|
||||
public DateTimeOffset DateDownload { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id автора
|
||||
/// </summary>
|
||||
public int IdAuthor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id директории
|
||||
/// </summary>
|
||||
public int IdDirectory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id категории файла
|
||||
/// </summary>
|
||||
public int IdCategory { get; set; }
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Минимальное и максимальное значение
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Расширение для класса MinMaxDto
|
||||
|
@ -7,11 +7,11 @@ namespace AsbCloudApp.Data;
|
||||
/// </summary>
|
||||
public class NotificationCategoryDto : IId
|
||||
{
|
||||
/// <summary>
|
||||
/// Id категории
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// Id категории
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название категории
|
||||
|
@ -8,11 +8,11 @@ namespace AsbCloudApp.Data;
|
||||
/// </summary>
|
||||
public class NotificationDto : IId
|
||||
{
|
||||
/// <summary>
|
||||
/// Id уведомления
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// Id уведомления
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id получателя уведомления
|
||||
@ -26,11 +26,11 @@ public class NotificationDto : IId
|
||||
[Required]
|
||||
public int IdNotificationCategory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Заголовок уведомления
|
||||
/// </summary>
|
||||
[Required, StringLength(300, MinimumLength = 1, ErrorMessage = "Заголовок должен мыть не меньше 1-го знака и не больше 300")]
|
||||
public string Title { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Заголовок уведомления
|
||||
/// </summary>
|
||||
[Required, StringLength(300, MinimumLength = 1, ErrorMessage = "Заголовок должен мыть не меньше 1-го знака и не больше 300")]
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Сообщение уведомления
|
||||
@ -44,15 +44,15 @@ public class NotificationDto : IId
|
||||
[Required]
|
||||
public DateTimeOffset RegistrationDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата отправки уведомления
|
||||
/// </summary>
|
||||
public DateTimeOffset? SentDate { get; set; }
|
||||
/// <summary>
|
||||
/// Дата отправки уведомления
|
||||
/// </summary>
|
||||
public DateTimeOffset? SentDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата прочтения уведомления
|
||||
/// </summary>
|
||||
public DateTimeOffset? ReadDate { get; set; }
|
||||
/// <summary>
|
||||
/// Дата прочтения уведомления
|
||||
/// </summary>
|
||||
public DateTimeOffset? ReadDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Состояние уведомления
|
||||
@ -62,36 +62,36 @@ public class NotificationDto : IId
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int IdState
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SentDate is not null && ReadDate is not null)
|
||||
return 2;
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SentDate is not null && ReadDate is not null)
|
||||
return 2;
|
||||
|
||||
if (SentDate is not null)
|
||||
return 1;
|
||||
if (SentDate is not null)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case 0:
|
||||
SentDate = null;
|
||||
ReadDate = null;
|
||||
break;
|
||||
case 1:
|
||||
SentDate = DateTimeOffset.UtcNow;
|
||||
ReadDate = null;
|
||||
break;
|
||||
case 2:
|
||||
SentDate = DateTimeOffset.UtcNow;
|
||||
ReadDate = DateTimeOffset.UtcNow;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case 0:
|
||||
SentDate = null;
|
||||
ReadDate = null;
|
||||
break;
|
||||
case 1:
|
||||
SentDate = DateTimeOffset.UtcNow;
|
||||
ReadDate = null;
|
||||
break;
|
||||
case 2:
|
||||
SentDate = DateTimeOffset.UtcNow;
|
||||
ReadDate = DateTimeOffset.UtcNow;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Id типа доставки уведомления
|
||||
@ -100,7 +100,7 @@ public class NotificationDto : IId
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Range(0,1)]
|
||||
public int IdTransportType { get; set; }
|
||||
public int IdTransportType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DTO категории уведомления
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
|
@ -8,10 +8,10 @@ namespace AsbCloudApp.Data;
|
||||
/// </summary>
|
||||
/// <typeparam name="TDto"></typeparam>
|
||||
public class ParserResultDto<TDto> : ValidationResultDto<IEnumerable<ValidationResultDto<TDto>>>
|
||||
where TDto : class, IId
|
||||
where TDto : class, IId
|
||||
{
|
||||
/// <summary>
|
||||
/// Объекты полученные из файла
|
||||
/// </summary>
|
||||
public override IEnumerable<ValidationResultDto<TDto>> Item { get; set; } = Enumerable.Empty<ValidationResultDto<TDto>>();
|
||||
/// <summary>
|
||||
/// Объекты полученные из файла
|
||||
/// </summary>
|
||||
public override IEnumerable<ValidationResultDto<TDto>> Item { get; set; } = Enumerable.Empty<ValidationResultDto<TDto>>();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// DTO объединяющее плановые и фактические значения
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Lines container for Time Vs Depth chart
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Functions;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Operations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
|
||||
@ -12,69 +12,69 @@ public class ProcessMapReportDataSaubStatDto
|
||||
/// </summary>
|
||||
public double DrilledTime { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Id секции скважины
|
||||
/// </summary>
|
||||
public int IdWellSectionType { get; set; }
|
||||
/// <summary>
|
||||
/// Id секции скважины
|
||||
/// </summary>
|
||||
public int IdWellSectionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название секции скважины
|
||||
/// </summary>
|
||||
public string WellSectionTypeName { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Название секции скважины
|
||||
/// </summary>
|
||||
public string WellSectionTypeName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Глубина по стволу от, м
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthStart { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина по стволу от, м
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина по стволу до, м
|
||||
/// <para>
|
||||
/// на конец интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина по стволу до, м
|
||||
/// <para>
|
||||
/// на конец интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата/ время
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
/// <summary>
|
||||
/// Дата/ время
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Режим бурения (Ротор/слайд/ручной)
|
||||
/// </summary>
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Режим бурения (Ротор/слайд/ручной)
|
||||
/// </summary>
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Проходка, м
|
||||
/// </summary>
|
||||
public double? DeltaDepth { get; set; }
|
||||
/// <summary>
|
||||
/// Проходка, м
|
||||
/// </summary>
|
||||
public double? DeltaDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления, атм
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto PressureDiff { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Перепад давления, атм
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto PressureDiff { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка, т
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto AxialLoad { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Нагрузка, т
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto AxialLoad { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Момент на ВСП, кНхМ
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto TopDriveTorque { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Момент на ВСП, кНхМ
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto TopDriveTorque { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Ограничение скорости, м/ч
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto SpeedLimit { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Ограничение скорости, м/ч
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto SpeedLimit { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Обороты ВСП, об/мин
|
||||
@ -86,8 +86,8 @@ public class ProcessMapReportDataSaubStatDto
|
||||
/// </summary>
|
||||
public ProcessMapReportDataSaubStatParamsDto Flow { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Механическая скорость, м/ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Механическая скорость, м/ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
|
||||
/// <summary>
|
||||
/// Параметры РТК
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
|
||||
@ -7,92 +7,92 @@ namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
/// </summary>
|
||||
public class ProcessMapReportWellDrillingDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор скважины
|
||||
/// </summary>
|
||||
public int IdWell { get; set; }
|
||||
/// <summary>
|
||||
/// Идентификатор скважины
|
||||
/// </summary>
|
||||
public int IdWell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Id секции скважины
|
||||
/// </summary>
|
||||
public int IdWellSectionType { get; set; }
|
||||
/// <summary>
|
||||
/// Id секции скважины
|
||||
/// </summary>
|
||||
public int IdWellSectionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название секции скважины
|
||||
/// </summary>
|
||||
public string WellSectionTypeName { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Название секции скважины
|
||||
/// </summary>
|
||||
public string WellSectionTypeName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Глубина по стволу от, м
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthStart { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина по стволу от, м
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Глубина по стволу до, м
|
||||
/// <para>
|
||||
/// на конец интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
/// <summary>
|
||||
/// Глубина по стволу до, м
|
||||
/// <para>
|
||||
/// на конец интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public double DepthEnd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата/ время
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
/// <summary>
|
||||
/// Дата/ время
|
||||
/// <para>
|
||||
/// на начало интервала
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public DateTimeOffset DateStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Время мех бурения, ч
|
||||
/// </summary>
|
||||
public double MechDrillingHours { get; set; }
|
||||
/// <summary>
|
||||
/// Время мех бурения, ч
|
||||
/// </summary>
|
||||
public double MechDrillingHours { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Режим бурения (Ротор/слайд/ручной)
|
||||
/// </summary>
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// Режим бурения (Ротор/слайд/ручной)
|
||||
/// </summary>
|
||||
public string DrillingMode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Проходка, м
|
||||
/// </summary>
|
||||
public double? DeltaDepth { get; set; }
|
||||
/// <summary>
|
||||
/// Проходка, м
|
||||
/// </summary>
|
||||
public double? DeltaDepth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Перепад давления, атм
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Перепад давления, атм
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto PressureDiff { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Нагрузка, т
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto AxialLoad { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Нагрузка, т
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto AxialLoad { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Момент на ВСП, кНхМ
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto TopDriveTorque { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Момент на ВСП, кНхМ
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto TopDriveTorque { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Ограничение скорости, м/ч
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto SpeedLimit { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Ограничение скорости, м/ч
|
||||
/// </summary>
|
||||
public ProcessMapReportWellDrillingParamsDto SpeedLimit { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Процент использования системы АПД план, %
|
||||
/// </summary>
|
||||
public double UsagePlan { get; set; }
|
||||
/// <summary>
|
||||
/// Процент использования системы АПД план, %
|
||||
/// </summary>
|
||||
public double UsagePlan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Процент использования системы АПД факт, %
|
||||
/// </summary>
|
||||
public double UsageFact { get; set; }
|
||||
/// <summary>
|
||||
/// Процент использования системы АПД факт, %
|
||||
/// </summary>
|
||||
public double UsageFact { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Механическая скорость, м/ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Механическая скорость, м/ч
|
||||
/// </summary>
|
||||
public PlanFactDto<double?> Rop { get; set; } = new();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
namespace AsbCloudApp.Data.ProcessMaps.Report;
|
||||
|
||||
/// <summary>
|
||||
/// Параметры РТК
|
||||
|
@ -7,64 +7,64 @@ namespace AsbCloudApp.Data.ProcessMaps;
|
||||
/// Секция скважины - план
|
||||
/// </summary>
|
||||
public class WellSectionPlanDto : ItemInfoDto,
|
||||
IId,
|
||||
IWellRelated,
|
||||
IValidatableObject
|
||||
IId,
|
||||
IWellRelated,
|
||||
IValidatableObject
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <inheritdoc/>
|
||||
[Required]
|
||||
public int IdWell { get; set; }
|
||||
public int IdWell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Тип секции
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
||||
[Range(1, int.MaxValue)]
|
||||
public int IdSectionType { 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 DepthStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Конечная глубина бурения, м
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "Поле обязательно для заполнение")]
|
||||
[Range(0, 10000, ErrorMessage = "Допустимое значение от 0 до 10000")]
|
||||
public double DepthEnd { 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? OuterDiameter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Внутренний диаметр
|
||||
/// </summary>
|
||||
[Range(1, 10000, ErrorMessage = "Допустимое значение от 1 до 10000")]
|
||||
public double? InnerDiameter { 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;
|
||||
/// <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 (!OuterDiameter.HasValue)
|
||||
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(OuterDiameter) });
|
||||
|
||||
if (!InnerDiameter.HasValue)
|
||||
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(InnerDiameter) });
|
||||
if (!InnerDiameter.HasValue)
|
||||
yield return new ValidationResult("Поле обязательно для заполнение", new[] { nameof(InnerDiameter) });
|
||||
|
||||
if (OuterDiameter <= InnerDiameter)
|
||||
yield return new ValidationResult("Внешний диаметр не должен быть больше или равен внутреннему",
|
||||
new[] { nameof(OuterDiameter) });
|
||||
}
|
||||
if (OuterDiameter <= InnerDiameter)
|
||||
yield return new ValidationResult("Внешний диаметр не должен быть больше или равен внутреннему",
|
||||
new[] { nameof(OuterDiameter) });
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.Progress;
|
||||
namespace AsbCloudApp.Data.Progress;
|
||||
|
||||
/// <summary>
|
||||
/// DTO прогресса
|
||||
|
@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data.Progress;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace AsbCloudApp.Data.Progress;
|
||||
namespace AsbCloudApp.Data.Progress;
|
||||
|
||||
/// <summary>
|
||||
/// DTO завершенного прогресса генерации рапорта-диаграммы
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user