diff --git a/AsbCloudApp/Data/DataSaubStatDto.cs b/AsbCloudApp/Data/DataSaubStatDto.cs
index a3b80a5d..ceae4f9d 100644
--- a/AsbCloudApp/Data/DataSaubStatDto.cs
+++ b/AsbCloudApp/Data/DataSaubStatDto.cs
@@ -1,4 +1,5 @@
using System;
+using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Data
{
diff --git a/AsbCloudApp/Data/DatesRangeDto.cs b/AsbCloudApp/Data/DatesRangeDto.cs
index 3f12acb7..a61034b6 100644
--- a/AsbCloudApp/Data/DatesRangeDto.cs
+++ b/AsbCloudApp/Data/DatesRangeDto.cs
@@ -12,12 +12,12 @@ namespace AsbCloudApp.Data
/// Дата начала диапазона
///
[Required]
- public DateTime From { get; set; }
+ public DateTimeOffset From { get; set; }
///
/// Дата окончания диапазона
///
[Required]
- public DateTime To { get; set; }
+ public DateTimeOffset To { get; set; }
}
}
diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
index e81a45fb..c8b1e15a 100644
--- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
+++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Data.DetectedOperation;
diff --git a/AsbCloudApp/Data/WellGroupOpertionDto.cs b/AsbCloudApp/Data/WellOperation/WellGroupOpertionDto.cs
similarity index 100%
rename from AsbCloudApp/Data/WellGroupOpertionDto.cs
rename to AsbCloudApp/Data/WellOperation/WellGroupOpertionDto.cs
diff --git a/AsbCloudApp/Data/WellOperationCategoryDto.cs b/AsbCloudApp/Data/WellOperation/WellOperationCategoryDto.cs
similarity index 96%
rename from AsbCloudApp/Data/WellOperationCategoryDto.cs
rename to AsbCloudApp/Data/WellOperation/WellOperationCategoryDto.cs
index 108a31f0..2fe0b177 100644
--- a/AsbCloudApp/Data/WellOperationCategoryDto.cs
+++ b/AsbCloudApp/Data/WellOperation/WellOperationCategoryDto.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace AsbCloudApp.Data
+namespace AsbCloudApp.Data.WellOperation
{
///
/// DTO категория операции
diff --git a/AsbCloudApp/Data/WellOperation/WellOperationDto.cs b/AsbCloudApp/Data/WellOperation/WellOperationDto.cs
new file mode 100644
index 00000000..2d8b8c87
--- /dev/null
+++ b/AsbCloudApp/Data/WellOperation/WellOperationDto.cs
@@ -0,0 +1,115 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.WellOperation;
+
+public class WellOperationDto : ItemInfoDto,
+ IId,
+ IWellRelated
+{
+ ///
+ [Required]
+ public int Id { get; set; }
+
+ ///
+ [Required]
+ public int IdWell { get; set; }
+
+ ///
+ /// Id секции скважины
+ ///
+ public int IdWellSectionType { get; set; }
+
+ ///
+ /// 0 = план или 1 = факт или прогноз = 2
+ ///
+ [Required]
+ public int IdType { get; set; }
+
+ ///
+ /// id категории операции
+ ///
+ public int IdCategory { get; set; }
+
+ ///
+ /// Глубина на начало операции, м
+ ///
+ public double DepthStart { get; set; }
+
+ ///
+ /// Глубина после завершения операции, м
+ ///
+ [Required]
+ [Range(0, 50_000)]
+ public double DepthEnd { get; set; }
+
+ ///
+ /// Дата начала операции
+ ///
+ [Required]
+ public DateTimeOffset DateStart { get; set; }
+
+ ///
+ /// Продолжительность, часы
+ ///
+ public double DurationHours { get; set; }
+
+ ///
+ /// Наименование секции
+ ///
+ public string? WellSectionTypeCaption { get; set; }
+
+ ///
+ /// Наименование категории
+ ///
+ public string? OperationCategoryName { get; set; }
+
+ ///
+ /// id плановой операции для сопоставления
+ ///
+ public int? IdPlan { get; set; }
+
+ ///
+ /// Ключ родителя у категории
+ ///
+ public int? IdParentCategory { get; set; }
+
+ ///
+ /// дополнительная информация по операции
+ ///
+ [StringLength(8192)]
+ public string? CategoryInfo { get; set; }
+
+ ///
+ /// Кол-во дней от даты начала первой плановой (а если её нет, то фактической) операции
+ ///
+ [Required]
+ public double Day { get; set; }
+
+ ///
+ /// Кол-во часов НПВ от даты начала первой плановой (а если её нет, то фактической) операции
+ ///
+ [Required]
+ public double NptHours { get; set; }
+
+ ///
+ /// Полезный комментарий
+ ///
+ [StringLength(4096, ErrorMessage = "Комментарий не может быть длиннее 4096 символов")]
+ public string? Comment { get; set; }
+
+ ///
+ /// Валидация даты
+ ///
+ ///
+ ///
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ var gtDate = new DateTimeOffset(2010, 1, 1, 0, 0, 0, TimeSpan.Zero);
+ if (DateStart <= gtDate)
+ yield return new ValidationResult(
+ $"{nameof(DateStart)}: DateStart не может быть меньше {gtDate}",
+ new[] { nameof(DateStart) });
+ }
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/WellOperationDataDto.cs b/AsbCloudApp/Data/WellOperationDataDto.cs
deleted file mode 100644
index 874bd65c..00000000
--- a/AsbCloudApp/Data/WellOperationDataDto.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace AsbCloudApp.Data
-{
- /// Операция на скважине
- public class WellOperationDataDto : IWellRelated
- {
- ///
- public int IdWell { get; set; }
-
- ///
- /// id секции скважины
- ///
- public int IdWellSectionType { get; set; }
-
- ///
- /// id категории операции
- ///
- public int IdCategory { get; set; }
-
- ///
- /// Глубина на начало операции, м
- ///
- public double DepthStart { get; set; }
-
- ///
- /// Продолжительность, часы
- ///
- public double DurationHours { get; set; }
-
- ///
- /// Наименование секции
- ///
- public string WellSectionTypeCaption { get; set; } = string.Empty;
-
- ///
- /// Наименование категории
- ///
- public string OperationCategoryName { get; set; } = string.Empty;
- }
-}
diff --git a/AsbCloudApp/Data/WellOperationDto.cs b/AsbCloudApp/Data/WellOperationDto.cs
deleted file mode 100644
index 725debfd..00000000
--- a/AsbCloudApp/Data/WellOperationDto.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-
-namespace AsbCloudApp.Data
-{
- ///
- /// Операции на скважине (заведенные пользователем)
- ///
- public class WellOperationDto : ItemInfoDto, IId, IWellRelated, IValidatableObject
- {
- ///
- [Required]
- public int Id { get; set; }
-
- ///
- [Required]
- public int IdWell { get; set; }
-
- ///
- /// id секции скважины
- ///
- [Required]
- public int IdWellSectionType { get; set; }
-
- ///
- /// название секции скважины
- ///
- public string? WellSectionTypeName { get; set; }
-
- ///
- /// id категории операции
- ///
- [Required]
- [Range(5000, int.MaxValue)]
- public int IdCategory { get; set; }
-
- ///
- /// id плановой операции для сопоставления
- ///
- public int? IdPlan { get; set; }
-
- ///
- /// название категории операции
- ///
- public string? CategoryName { get; set; }
-
- ///
- /// ключ родителя у категории
- ///
- public int? IdParentCategory { get; set; }
-
- ///
- /// дополнительная информация по операции
- ///
- [StringLength(8192)]
- public string? CategoryInfo { get; set; }
-
- ///
- /// 0 = план или 1 = факт или прогноз = 2
- ///
- [Required]
- public int IdType { get; set; }
-
- ///
- /// Глубина на начало операции, м
- ///
- [Required]
- [Range(0, 50_000)]
- public double DepthStart { get; set; }
-
- ///
- /// Глубина после завершения операции, м
- ///
- [Required]
- [Range(0, 50_000)]
- public double DepthEnd { get; set; }
-
- ///
- /// Кол-во дней от даты начала первой плановой (а если её нет, то фактической) операции
- ///
- [Required]
- public double Day { get; set; }
-
- ///
- /// Кол-во часов НПВ от даты начала первой плановой (а если её нет, то фактической) операции
- ///
- [Required]
- public double NptHours { get; set; }
-
- ///
- /// Дата начала операции
- ///
- [Required]
- public DateTimeOffset DateStart { get; set; }
-
- ///
- /// Продолжительность, часы
- ///
- [Required]
- [Range(0, 50)]
- public double DurationHours { get; set; }
-
- ///
- /// Полезный комментарий
- ///
- [StringLength(4096, ErrorMessage = "Комментарий не может быть длиннее 4096 символов")]
- public string? Comment { get; set; }
-
- ///
- /// Валидация даты
- ///
- ///
- ///
- public IEnumerable Validate(ValidationContext validationContext)
- {
- var gtDate = new DateTimeOffset(2010, 1, 1, 0, 0, 0, TimeSpan.Zero);
- if (DateStart <= gtDate)
- yield return new ValidationResult(
- $"{nameof(DateStart)}: DateStart не может быть меньше {gtDate}",
- new[] { nameof(DateStart) });
- }
- }
-}
diff --git a/AsbCloudApp/Data/WellOperationPlanDto.cs b/AsbCloudApp/Data/WellOperationPlanDto.cs
deleted file mode 100644
index 5c1bac9f..00000000
--- a/AsbCloudApp/Data/WellOperationPlanDto.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations;
-using System.Linq;
-
-namespace AsbCloudApp.Data
-{
- ///
- /// класс, который хранит список плановых операций для сопоставления
- /// и даты последней сопоставленной плановой операции
- ///
-#nullable enable
- public class WellOperationPlanDto
- {
- ///
- /// коллекция плановых операций
- ///
- [Required]
- public IEnumerable WellOperationsPlan { get; set; } = Enumerable.Empty();
-
- ///
- /// дата последней сопоставленной плановой операции
- ///
- public DateTime? DateLastAssosiatedPlanOperation { get; set; }
-
- }
-
-}