From e095cd1293d242f40a49c107d346fd50d829d69e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 16 Jan 2024 13:24:42 +0500 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B0=D1=82=D1=80=D0=B8=D0=B1=D1=83=D1=82=20[Required?= =?UTF-8?q?]=20=D0=BD=D0=B0=20non-nullable=20=D0=BF=D0=BE=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B2=20dtos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/ClusterDto.cs | 1 + AsbCloudApp/Data/ClusterRopStatDto.cs | 4 ++ AsbCloudApp/Data/CompanyDto.cs | 1 + AsbCloudApp/Data/CompanyTypeDto.cs | 8 ++- .../Blocks/ProcessMapWellDrillingRecordDto.cs | 25 ++++--- .../DailyReport/Blocks/Sign/SignRecordDto.cs | 12 ++-- .../Blocks/Subsystems/SubsystemBlockDto.cs | 2 + .../Blocks/Subsystems/SubsystemRecordDto.cs | 3 + .../Data/DailyReport/DailyReportDto.cs | 61 +++++++++------- AsbCloudApp/Data/DatesRangeDto.cs | 3 + AsbCloudApp/Data/DepositDto.cs | 3 + .../DetectedOperationDrillersStatDto.cs | 6 +- .../DetectedOperation/DetectedOperationDto.cs | 18 ++++- .../DetectedOperationListDto.cs | 3 + .../DetectedOperationStatDto.cs | 14 +++- .../DrillTestReport/DrillTestReportInfoDto.cs | 4 ++ AsbCloudApp/Data/DrillerDto.cs | 9 ++- AsbCloudApp/Data/DrillingProgramPartDto.cs | 8 +++ AsbCloudApp/Data/DrillingProgramStateDto.cs | 8 ++- AsbCloudApp/Data/FaqDto.cs | 9 ++- AsbCloudApp/Data/FileCategoryDto.cs | 11 ++- AsbCloudApp/Data/FileInfoDto.cs | 8 +++ AsbCloudApp/Data/FileMarkDto.cs | 7 +- AsbCloudApp/Data/JobDto.cs | 3 + AsbCloudApp/Data/LimitingParameterDto.cs | 7 ++ AsbCloudApp/Data/MeasureDto.cs | 6 ++ AsbCloudApp/Data/MessageDto.cs | 5 ++ AsbCloudApp/Data/NotificationCategoryDto.cs | 12 ++-- AsbCloudApp/Data/NotificationDto.cs | 69 ++++++++++--------- AsbCloudApp/Data/OperationValueDto.cs | 11 ++- AsbCloudApp/Data/PermissionDto.cs | 2 + AsbCloudApp/Data/PlanLimitDto.cs | 6 +- .../Data/ProcessMaps/ProcessMapPlanBaseDto.cs | 7 ++ .../ProcessMapPlanWellDrillingDto.cs | 9 +++ .../ProcessMaps/ProcessMapPlanWellReamDto.cs | 9 +++ AsbCloudApp/Data/RequestLogUserDto.cs | 10 ++- AsbCloudApp/Data/SAUB/DrillTestDto.cs | 5 ++ AsbCloudApp/Data/SAUB/DrillTestParamsDto.cs | 5 +- AsbCloudApp/Data/SAUB/EventDto.cs | 7 +- AsbCloudApp/Data/SAUB/SetpointInfoDto.cs | 8 ++- AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs | 8 +++ AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs | 3 + AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs | 6 ++ AsbCloudApp/Data/ScheduleDto.cs | 8 +++ AsbCloudApp/Data/SectionByOperationsDto.cs | 8 +++ AsbCloudApp/Data/StatClusterDto.cs | 4 ++ AsbCloudApp/Data/StatOperationsDto.cs | 9 +++ AsbCloudApp/Data/StatSectionDto.cs | 6 +- AsbCloudApp/Data/StatWellDto.cs | 10 +++ .../Subsystems/SubsystemActiveWellStatDto.cs | 5 +- AsbCloudApp/Data/Subsystems/SubsystemDto.cs | 7 +- .../Data/Subsystems/SubsystemStatDto.cs | 12 +++- AsbCloudApp/Data/WITS/RecordBaseDto.cs | 7 +- 53 files changed, 403 insertions(+), 99 deletions(-) diff --git a/AsbCloudApp/Data/ClusterDto.cs b/AsbCloudApp/Data/ClusterDto.cs index 800d61a6..38dd282f 100644 --- a/AsbCloudApp/Data/ClusterDto.cs +++ b/AsbCloudApp/Data/ClusterDto.cs @@ -12,6 +12,7 @@ namespace AsbCloudApp.Data /// /// ИД месторождения, необязательный /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id месторождения не может быть меньше 1")] public int IdDeposit { get; set; } diff --git a/AsbCloudApp/Data/ClusterRopStatDto.cs b/AsbCloudApp/Data/ClusterRopStatDto.cs index abc8de19..c941c082 100644 --- a/AsbCloudApp/Data/ClusterRopStatDto.cs +++ b/AsbCloudApp/Data/ClusterRopStatDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data { /// @@ -8,11 +10,13 @@ namespace AsbCloudApp.Data /// /// . /// + [Required] public double RopMax { get; set; } /// /// /// + [Required] public double RopAverage { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/CompanyDto.cs b/AsbCloudApp/Data/CompanyDto.cs index 7599aa5a..3c670412 100644 --- a/AsbCloudApp/Data/CompanyDto.cs +++ b/AsbCloudApp/Data/CompanyDto.cs @@ -23,6 +23,7 @@ namespace AsbCloudApp.Data /// /// ИД типа компании /// + [Required] public int IdCompanyType { get; set; } /// diff --git a/AsbCloudApp/Data/CompanyTypeDto.cs b/AsbCloudApp/Data/CompanyTypeDto.cs index 58901f85..dc29e85e 100644 --- a/AsbCloudApp/Data/CompanyTypeDto.cs +++ b/AsbCloudApp/Data/CompanyTypeDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// DTO тип компании @@ -6,21 +8,25 @@ public class CompanyTypeDto : IId { /// + [Required] public int Id { get; set; } /// /// Название типа компании /// + [Required] public string Caption { get; set; } = null!; /// /// Порядок /// + [Required] public int Order { get; set; } /// /// Является ли контактом /// + [Required] public bool IsContact { get; set; } } diff --git a/AsbCloudApp/Data/DailyReport/Blocks/ProcessMapWellDrillingRecordDto.cs b/AsbCloudApp/Data/DailyReport/Blocks/ProcessMapWellDrillingRecordDto.cs index d51d4b5d..b5c85244 100644 --- a/AsbCloudApp/Data/DailyReport/Blocks/ProcessMapWellDrillingRecordDto.cs +++ b/AsbCloudApp/Data/DailyReport/Blocks/ProcessMapWellDrillingRecordDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data.DailyReport.Blocks; /// @@ -8,20 +10,23 @@ public class ProcessMapWellDrillingRecordDto /// /// Режим бурения /// + [Required] public string DrillingMode { get; set; } = null!; - - /// - /// Мех. скорость - /// - public PlanFactDto Rop { get; set; } = new(); + + /// + /// Мех. скорость + /// + [Required] + public PlanFactDto Rop { get; set; } = new(); /// /// Глубина ствола /// public double? WellBoreDepth { get; set; } - - /// - /// Часы бурения - /// - public double MechDrillingHours { get; set; } + + /// + /// Часы бурения + /// + [Required] + public double MechDrillingHours { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs b/AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs index 2196224e..b071a2fb 100644 --- a/AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs +++ b/AsbCloudApp/Data/DailyReport/Blocks/Sign/SignRecordDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data.DailyReport.Blocks.Sign; /// @@ -8,12 +10,14 @@ public class SignRecordDto /// /// Имя /// + [Required] public string Name { get; set; } = null!; - /// - /// Фамилия - /// - public string Surname { get; set; } = null!; + /// + /// Фамилия + /// + [Required] + public string Surname { get; set; } = null!; /// /// Отчество diff --git a/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemBlockDto.cs b/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemBlockDto.cs index 605b8bdf..3e997cb5 100644 --- a/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemBlockDto.cs +++ b/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemBlockDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems; @@ -36,5 +37,6 @@ public class SubsystemBlockDto : ItemInfoDto /// /// Подсистемы /// + [Required] public IEnumerable Subsystems { get; set; } = Enumerable.Empty(); } \ No newline at end of file diff --git a/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemRecordDto.cs b/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemRecordDto.cs index fab29d57..99811775 100644 --- a/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemRecordDto.cs +++ b/AsbCloudApp/Data/DailyReport/Blocks/Subsystems/SubsystemRecordDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data.DailyReport.Blocks.Subsystems; /// @@ -8,6 +10,7 @@ public class SubsystemRecordDto /// /// Название подсистемы /// + [Required] public string Name { get; set; } = null!; /// diff --git a/AsbCloudApp/Data/DailyReport/DailyReportDto.cs b/AsbCloudApp/Data/DailyReport/DailyReportDto.cs index 7c1a1ea1..d8d9d4c8 100644 --- a/AsbCloudApp/Data/DailyReport/DailyReportDto.cs +++ b/AsbCloudApp/Data/DailyReport/DailyReportDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using AsbCloudApp.Data.DailyReport.Blocks; using AsbCloudApp.Data.DailyReport.Blocks.Sign; @@ -16,15 +17,18 @@ public class DailyReportDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] public int IdWell { get; set; } - /// - /// Название скважины - /// - public string WellCaption { get; set; } = null!; + /// + /// Название скважины + /// + [Required] + public string WellCaption { get; set; } = null!; /// /// Название типа скважины @@ -61,25 +65,28 @@ public class DailyReportDto : IId, /// public double? DepthEnd { get; set; } - /// - /// Дата формирования отчёта - /// - public DateOnly Date { get; set; } + /// + /// Дата формирования отчёта + /// + [Required] + public DateOnly Date { get; set; } /// /// Дата последнего обновления /// - public DateTime? DateLastUpdate { get; set; } - - /// - /// Блок фактической траектории - /// - public TrajectoryBlockDto TrajectoryBlock { get; set; } = null!; + public DateTime? DateLastUpdate { get; set; } - /// - /// Фактические операции - /// - public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!; + /// + /// Блок фактической траектории + /// + [Required] + public TrajectoryBlockDto TrajectoryBlock { get; set; } = null!; + + /// + /// Фактические операции + /// + [Required] + public WellOperationBlockDto FactWellOperationBlock { get; set; } = null!; /// /// Баланс времени @@ -96,13 +103,15 @@ public class DailyReportDto : IId, /// public SignBlockDto? SignBlock { get; set; } - /// - /// Блок расписания - /// - public IEnumerable ScheduleBlock { get; set; } = Enumerable.Empty(); + /// + /// Блок расписания + /// + [Required] + public IEnumerable ScheduleBlock { get; set; } = Enumerable.Empty(); - /// - /// РТК - /// - public IEnumerable ProcessMapWellDrillingBlock { get; set; } = Enumerable.Empty(); + /// + /// РТК + /// + [Required] + public IEnumerable ProcessMapWellDrillingBlock { get; set; } = Enumerable.Empty(); } \ No newline at end of file diff --git a/AsbCloudApp/Data/DatesRangeDto.cs b/AsbCloudApp/Data/DatesRangeDto.cs index 64a01263..3f12acb7 100644 --- a/AsbCloudApp/Data/DatesRangeDto.cs +++ b/AsbCloudApp/Data/DatesRangeDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -10,11 +11,13 @@ namespace AsbCloudApp.Data /// /// Дата начала диапазона /// + [Required] public DateTime From { get; set; } /// /// Дата окончания диапазона /// + [Required] public DateTime To { get; set; } } } diff --git a/AsbCloudApp/Data/DepositDto.cs b/AsbCloudApp/Data/DepositDto.cs index 55c9e816..6f39cc87 100644 --- a/AsbCloudApp/Data/DepositDto.cs +++ b/AsbCloudApp/Data/DepositDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -21,6 +22,7 @@ namespace AsbCloudApp.Data /// /// Кусты месторождения /// + [Required] public IEnumerable Clusters { get; set; } = Enumerable.Empty(); } @@ -32,6 +34,7 @@ namespace AsbCloudApp.Data /// /// Кусты месторождения /// + [Required] public IEnumerable Clusters { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDrillersStatDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDrillersStatDto.cs index 2eb06f63..c0be17d8 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDrillersStatDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDrillersStatDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.DetectedOperation +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.DetectedOperation { /// /// Статистика по операциям бурильщика @@ -13,11 +15,13 @@ /// /// Количество операции /// + [Required] public int Count { get; set; } /// /// Среднее по ключевому показателю /// + [Required] public double AverageValue { get; set; } /// diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs index cdc6571b..0386e8b3 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.DetectedOperation { @@ -8,54 +9,65 @@ namespace AsbCloudApp.Data.DetectedOperation public class DetectedOperationDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] public int IdWell { get; set; } - + /// /// Id телеметрии /// + [Required] public int IdTelemetry { get; set; } /// /// Id названия/описания операции /// + [Required] public int IdCategory { get; set; } /// /// Id пользователя панели /// + [Required] public int IdUsersAtStart { get; set; } /// /// Дата начала операции в часовом поясе скважины /// + [Required] public DateTime DateStart { get; set; } /// /// Дата завершения операции в часовом поясе скважины /// + [Required] public DateTime DateEnd { get; set; } /// /// Продолжительность операции в минутах /// + [Required] public double DurationMinutes => (DateEnd - DateStart).TotalMinutes; /// /// глубина на начало операции, м /// + [Required] public double DepthStart { get; set; } /// /// глубина на завершения операции, м /// + [Required] public double DepthEnd { get; set; } /// /// название/описание операции /// + [Required] public WellOperationCategoryDto OperationCategory { get; set; } = null!; /// @@ -76,11 +88,13 @@ namespace AsbCloudApp.Data.DetectedOperation /// /// Ключевой параметр операции /// + [Required] public double Value { get; set; } - + /// /// Флаг включенной подсистемы /// + [Required] public int EnabledSubsystems { get; set; } } } diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs index 496fcd60..fef979bb 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationListDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data.DetectedOperation @@ -11,11 +12,13 @@ namespace AsbCloudApp.Data.DetectedOperation /// /// Список всех операций /// + [Required] public IEnumerable Operations { get; set; } = Enumerable.Empty(); /// /// Статистика по бурильщикам /// + [Required] public IEnumerable Stats { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs index 251345aa..455bdf09 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.DetectedOperation +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.DetectedOperation { /// /// Статистика по операциям например за период. @@ -8,51 +10,61 @@ /// /// Id названия/описания операции /// + [Required] public int IdCategory { get; set; } /// /// Название операции /// + [Required] public string Category { get; set; } = string.Empty; /// /// Количество операций /// + [Required] public int Count { get; set; } /// /// Среднее по ключевому показателю /// + [Required] public double ValueAverage { get; set; } /// /// Мин по ключевому показателю /// + [Required] public double ValueMin { get; set; } /// /// Макс по ключевому показателю /// + [Required] public double ValueMax { get; set; } /// /// Суммарное время операций, мин /// + [Required] public double MinutesTotal { get; set; } /// /// Мин продолжительность операции, мин /// + [Required] public double MinutesMin { get; set; } /// /// Макс продолжительность операции, мин /// + [Required] public double MinutesMax { get; set; } /// /// Средняя продолжительность операции, мин /// + [Required] public double MinutesAverage { get; set; } } } diff --git a/AsbCloudApp/Data/DrillTestReport/DrillTestReportInfoDto.cs b/AsbCloudApp/Data/DrillTestReport/DrillTestReportInfoDto.cs index 8d3a9244..39d37a11 100644 --- a/AsbCloudApp/Data/DrillTestReport/DrillTestReportInfoDto.cs +++ b/AsbCloudApp/Data/DrillTestReport/DrillTestReportInfoDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.DrillTestReport { @@ -10,16 +11,19 @@ namespace AsbCloudApp.Data.DrillTestReport /// /// Идентификатор отчета /// + [Required] public int Id { get; set; } /// /// Проходка /// + [Required] public float DrillDepth { get; set; } /// /// Дата и время /// + [Required] public DateTime DateTime { get; set; } } } diff --git a/AsbCloudApp/Data/DrillerDto.cs b/AsbCloudApp/Data/DrillerDto.cs index cf1a9ea5..f2c8b6b0 100644 --- a/AsbCloudApp/Data/DrillerDto.cs +++ b/AsbCloudApp/Data/DrillerDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// Описание данных для бурильщика @@ -8,16 +10,19 @@ /// /// Идентификатор в БД /// + [Required] public int Id { get; set; } - + /// /// Имя /// + [Required] public string Name { get; set; } = null!; /// /// Фамилия /// + [Required] public string Surname { get; set; } = null!; /// diff --git a/AsbCloudApp/Data/DrillingProgramPartDto.cs b/AsbCloudApp/Data/DrillingProgramPartDto.cs index f349c9de..d4cc66fb 100644 --- a/AsbCloudApp/Data/DrillingProgramPartDto.cs +++ b/AsbCloudApp/Data/DrillingProgramPartDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using AsbCloudApp.Data.User; @@ -12,11 +13,13 @@ namespace AsbCloudApp.Data /// /// Название /// + [Required] public string Name { get; set; } = string.Empty; /// /// ИД категории файла /// + [Required] public int IdFileCategory { get; set; } /// @@ -24,26 +27,31 @@ namespace AsbCloudApp.Data /// 1 - approving /// 2 - completely approved /// + [Required] public int IdState { get; set; } /// /// Публикаторы. Могут загружать файл этой категории /// + [Required] public IEnumerable Publishers { get; set; } = Enumerable.Empty(); /// /// Согласованты. Могут согласовывать загруженные файлы этой категории /// + [Required] public IEnumerable Approvers { get; set; } = Enumerable.Empty(); /// /// Разрешение для текущего пользователя согласовывать документ /// + [Required] public bool PermissionToApprove { get; set; } /// /// Разрешение для текущего пользователя загружать документ /// + [Required] public bool PermissionToUpload { get; set; } /// diff --git a/AsbCloudApp/Data/DrillingProgramStateDto.cs b/AsbCloudApp/Data/DrillingProgramStateDto.cs index 791d80b4..b2abcef0 100644 --- a/AsbCloudApp/Data/DrillingProgramStateDto.cs +++ b/AsbCloudApp/Data/DrillingProgramStateDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -14,6 +15,7 @@ namespace AsbCloudApp.Data /// 2 - формируется (несколько минут) /// 3 - готова /// + [Required] public int IdState { get; set; } /// @@ -25,15 +27,17 @@ namespace AsbCloudApp.Data /// Файл сформированной программы бурения /// public FileInfoDto? Program { get; set; } - + /// /// Разрешение редактировать части программы бурения /// + [Required] public bool PermissionToEdit { get; set; } /// /// Список частей программы бурения /// + [Required] public IEnumerable Parts { get; set; } = Enumerable.Empty(); } @@ -45,11 +49,13 @@ namespace AsbCloudApp.Data /// /// Текст ошибки для отображения пользователю /// + [Required] public string Message { get; set; } = string.Empty; /// /// Текст ошибки для разработчика /// + [Required] public string Exception { get; set; } = string.Empty; } } diff --git a/AsbCloudApp/Data/FaqDto.cs b/AsbCloudApp/Data/FaqDto.cs index 3f817fdf..e69c0579 100644 --- a/AsbCloudApp/Data/FaqDto.cs +++ b/AsbCloudApp/Data/FaqDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -10,6 +11,7 @@ namespace AsbCloudApp.Data /// /// ключ вопроса /// + [Required] public int Id { get; set; } /// @@ -31,6 +33,7 @@ namespace AsbCloudApp.Data /// /// текст вопроса /// + [Required] public string Question { get; set; } = null!; /// @@ -41,21 +44,25 @@ namespace AsbCloudApp.Data /// /// статус вопроса /// + [Required] public int State { get; set; } = 0; /// /// Счетчик повторений вопроса /// + [Required] public int CounterQuestion { get; set; } = 1; /// /// Частый вопрос - /// + /// + [Required] public bool IsFrequently { get; set; } = false; /// /// Автор вопроса /// + [Required] public string AurhorQuestionName { get; set; } = string.Empty; /// diff --git a/AsbCloudApp/Data/FileCategoryDto.cs b/AsbCloudApp/Data/FileCategoryDto.cs index 2174af01..7c687170 100644 --- a/AsbCloudApp/Data/FileCategoryDto.cs +++ b/AsbCloudApp/Data/FileCategoryDto.cs @@ -1,21 +1,26 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// DTO категории файла /// public class FileCategoryDto : IId { - /// + /// + [Required] public int Id { get; set; } - + /// /// полное название /// + [Required] public string Name { get; set; } = string.Empty; /// /// сокращенное название /// + [Required] public string ShortName { get; set; } = string.Empty; } } diff --git a/AsbCloudApp/Data/FileInfoDto.cs b/AsbCloudApp/Data/FileInfoDto.cs index 9b98c092..8e006661 100644 --- a/AsbCloudApp/Data/FileInfoDto.cs +++ b/AsbCloudApp/Data/FileInfoDto.cs @@ -12,15 +12,18 @@ namespace AsbCloudApp.Data public class FileInfoDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] public int IdWell { get; set; } /// /// id категории файла /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id категории файла не может быть меньше 1")] public int IdCategory { get; set; } @@ -32,22 +35,26 @@ namespace AsbCloudApp.Data /// /// имя файла /// + [Required] [StringLength(260, MinimumLength = 1, ErrorMessage = "Допустимое имя компании от 1 до 260 символов")] public string Name { get; set; } = null!; /// /// дата загрузки /// + [Required] public DateTime UploadDate { get; set; } /// /// размер в байтах /// + [Required] public long Size { get; set; } /// /// Помечен как удаленный /// + [Required] public bool IsDeleted { get; set; } /// @@ -58,6 +65,7 @@ namespace AsbCloudApp.Data /// /// список отметок файла /// + [Required] public IEnumerable FileMarks { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/FileMarkDto.cs b/AsbCloudApp/Data/FileMarkDto.cs index 4d37457d..7329821b 100644 --- a/AsbCloudApp/Data/FileMarkDto.cs +++ b/AsbCloudApp/Data/FileMarkDto.cs @@ -10,11 +10,13 @@ namespace AsbCloudApp.Data public class FileMarkDto: IId { /// + [Required] public int Id { get; set; } /// /// id /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id 1")] public int IdFile { get; set; } @@ -22,13 +24,15 @@ namespace AsbCloudApp.Data /// 0 - /// 1 - /// + [Required] [Range(0, int.MaxValue, ErrorMessage = "Id 1")] public int IdMarkType { get; set; } - + /// /// / . /// . /// + [Required] public DateTime DateCreated { get; set; } /// @@ -40,6 +44,7 @@ namespace AsbCloudApp.Data /// /// /// + [Required] public bool IsDeleted { get; set; } /// diff --git a/AsbCloudApp/Data/JobDto.cs b/AsbCloudApp/Data/JobDto.cs index ea5a8e24..b55a9467 100644 --- a/AsbCloudApp/Data/JobDto.cs +++ b/AsbCloudApp/Data/JobDto.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -33,11 +34,13 @@ namespace AsbCloudApp.Data /// /// идентификатор /// + [Required] public int Id { get; set; } /// /// Состояние /// + [Required] public JobState State { get; set; } /// diff --git a/AsbCloudApp/Data/LimitingParameterDto.cs b/AsbCloudApp/Data/LimitingParameterDto.cs index 45a3da74..b4f43a09 100644 --- a/AsbCloudApp/Data/LimitingParameterDto.cs +++ b/AsbCloudApp/Data/LimitingParameterDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -10,31 +11,37 @@ namespace AsbCloudApp.Data /// /// Идентификатор скважины /// + [Required] public int IdWell { get; set; } /// /// Время бурения /// + [Required] public float TotalMinutes { get; set; } /// /// Глубина бурения /// + [Required] public float Depth { get; set; } /// /// Идентификатор критерия бурения /// + [Required] public short IdFeedRegulator { get; set; } /// /// Наименование критерия бурения /// + [Required] public string NameFeedRegulator { get; set; } = string.Empty; /// /// Количество включений /// + [Required] public int NumberInclusions { get; set; } } } diff --git a/AsbCloudApp/Data/MeasureDto.cs b/AsbCloudApp/Data/MeasureDto.cs index 3be34bd9..9f823a91 100644 --- a/AsbCloudApp/Data/MeasureDto.cs +++ b/AsbCloudApp/Data/MeasureDto.cs @@ -10,32 +10,38 @@ namespace AsbCloudApp.Data public class MeasureDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] public int IdWell { get; set; } /// /// Id категории замера /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id категории не может быть меньше 1")] public int IdCategory { get; set; } /// /// название категории замера /// + [Required] [StringLength(120, MinimumLength = 1, ErrorMessage = "Название категории не может быть больше 120 символов")] public string CategoryName { get; set; } = string.Empty; /// /// отметка времени замера /// + [Required] public DateTime Timestamp { get; set; } /// /// данные замера /// + [Required] public Dictionary Data { get; set; } = new(); } } diff --git a/AsbCloudApp/Data/MessageDto.cs b/AsbCloudApp/Data/MessageDto.cs index 6f2036be..071967d9 100644 --- a/AsbCloudApp/Data/MessageDto.cs +++ b/AsbCloudApp/Data/MessageDto.cs @@ -9,22 +9,26 @@ namespace AsbCloudApp.Data public class MessageDto : IId { /// + [Required] public int Id { get; set; } /// /// дата появления события /// + [Required] public DateTime DateTime { get; set; } /// /// категория события /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id категории не может быть ниже 1")] public int CategoryId { get; set; } /// /// глубина забоя, при котором событие возникло /// + [Required] [Range(-1, int.MaxValue, ErrorMessage = "Id скважины не может быть ниже 1")] public double WellDepth { get; set; } @@ -36,6 +40,7 @@ namespace AsbCloudApp.Data /// /// текст сообщения /// + [Required] [StringLength(400, MinimumLength = 1, ErrorMessage = "Допустимая длина текста сообщения от 1 до 400 символов")] public string Message { get; set; } = string.Empty; } diff --git a/AsbCloudApp/Data/NotificationCategoryDto.cs b/AsbCloudApp/Data/NotificationCategoryDto.cs index f58b1115..274366e4 100644 --- a/AsbCloudApp/Data/NotificationCategoryDto.cs +++ b/AsbCloudApp/Data/NotificationCategoryDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data; /// @@ -8,10 +10,12 @@ public class NotificationCategoryDto : IId /// /// Id категории /// + [Required] public int Id { get; set; } - /// - /// Название категории - /// - public string Name { get; set; } = null!; + /// + /// Название категории + /// + [Required] + public string Name { get; set; } = null!; } \ No newline at end of file diff --git a/AsbCloudApp/Data/NotificationDto.cs b/AsbCloudApp/Data/NotificationDto.cs index ba6c5bce..ee42f8d7 100644 --- a/AsbCloudApp/Data/NotificationDto.cs +++ b/AsbCloudApp/Data/NotificationDto.cs @@ -11,17 +11,20 @@ public class NotificationDto : IId /// /// Id уведомления /// + [Required] public int Id { get; set; } - - /// - /// Id получателя уведомления - /// - public int IdUser { get; set; } - /// - /// Id категории уведомления - /// - public int IdNotificationCategory { get; set; } + /// + /// Id получателя уведомления + /// + [Required] + public int IdUser { get; set; } + + /// + /// Id категории уведомления + /// + [Required] + public int IdNotificationCategory { get; set; } /// /// Заголовок уведомления @@ -35,10 +38,11 @@ public class NotificationDto : IId [Required, StringLength(2048, MinimumLength = 1, ErrorMessage = "Заголовок должен мыть не меньше 1-го знака и не больше 2048")] public string Message { get; set; } = null!; - /// - /// Дата регистрации уведомления - /// - public DateTime RegistrationDate { get; set; } + /// + /// Дата регистрации уведомления + /// + [Required] + public DateTime RegistrationDate { get; set; } /// /// Дата отправки уведомления @@ -50,13 +54,14 @@ public class NotificationDto : IId /// public DateTime? ReadDate { get; set; } - /// - /// Состояние уведомления - /// 0 - Зарегистрировано, - /// 1 - Отправлено, - /// 2 - Прочитано - /// - public int IdState + /// + /// Состояние уведомления + /// 0 - Зарегистрировано, + /// 1 - Отправлено, + /// 2 - Прочитано + /// + [Required] + public int IdState { get { @@ -88,16 +93,18 @@ public class NotificationDto : IId } } - /// - /// Id типа доставки уведомления - /// 0 - SignalR - /// 1 - Email - /// - [Range(0,1)] + /// + /// Id типа доставки уведомления + /// 0 - SignalR + /// 1 - Email + /// + [Required] + [Range(0,1)] public int IdTransportType { get; set; } - - /// - /// DTO категории уведомления - /// - public NotificationCategoryDto NotificationCategory { get; set; } = null!; + + /// + /// DTO категории уведомления + /// + [Required] + public NotificationCategoryDto NotificationCategory { get; set; } = null!; } \ No newline at end of file diff --git a/AsbCloudApp/Data/OperationValueDto.cs b/AsbCloudApp/Data/OperationValueDto.cs index 14715213..f7d9edcf 100644 --- a/AsbCloudApp/Data/OperationValueDto.cs +++ b/AsbCloudApp/Data/OperationValueDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// Описание целевых/нормативных показателей операций @@ -8,36 +10,43 @@ /// /// Идентификатор в БД /// + [Required] public int Id { get; set; } /// /// Идентификатор скважины /// + [Required] public int IdWell { get; set; } /// /// Идентификатор категории операции /// + [Required] public int IdOperationCategory { get; set; } /// /// Целевой показатель /// + [Required] public double TargetValue { get; set; } /// /// Нормативный показатель /// + [Required] public double StandardValue { get; set; } /// /// Стартовая глубина /// + [Required] public double DepthStart { get; set; } /// /// Конечная глубина /// + [Required] public double DepthEnd { get; set; } } diff --git a/AsbCloudApp/Data/PermissionDto.cs b/AsbCloudApp/Data/PermissionDto.cs index d3fcf359..62aad5c4 100644 --- a/AsbCloudApp/Data/PermissionDto.cs +++ b/AsbCloudApp/Data/PermissionDto.cs @@ -9,11 +9,13 @@ namespace AsbCloudApp.Data public class PermissionDto : IId { /// + [Required] public int Id { get; set; } /// /// Название /// + [Required] [StringLength(50, MinimumLength = 1, ErrorMessage = "Допустимая длина названия разрешения от 1 до 50 символов")] public string Name { get; set; } = string.Empty; diff --git a/AsbCloudApp/Data/PlanLimitDto.cs b/AsbCloudApp/Data/PlanLimitDto.cs index ec597292..aa32408a 100644 --- a/AsbCloudApp/Data/PlanLimitDto.cs +++ b/AsbCloudApp/Data/PlanLimitDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// Плановое значение и максимально допустимое ограничение @@ -8,11 +10,13 @@ /// /// План /// + [Required] public double Plan { get; set; } /// /// Максимальное ограничение /// + [Required] public double LimitMax { get; set; } } diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs index 73e08a58..727ef374 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs @@ -7,28 +7,33 @@ namespace AsbCloudApp.Data.ProcessMaps; public abstract class ProcessMapPlanBaseDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// /// Id скважины /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] public int IdWell { get; set; } /// /// Id пользователя /// + [Required] public int IdUser { get; set; } /// /// Тип секции /// + [Required] [Range(1, int.MaxValue, ErrorMessage = "Id секции скважины не может быть меньше 1")] public int IdWellSectionType { get; set; } /// /// Дата последнего изменения /// + [Required] public DateTimeOffset LastUpdate { get; set; } /// @@ -37,6 +42,7 @@ public abstract class ProcessMapPlanBaseDto : IId, IWellRelated /// на начало интервала /// /// + [Required] [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthStart { get; set; } @@ -46,6 +52,7 @@ public abstract class ProcessMapPlanBaseDto : IId, IWellRelated /// на конец интервала /// /// + [Required] [Range(0, 99999.9, ErrorMessage = "Глубина не может быть отрицательной")] public double DepthEnd { get; set; } diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellDrillingDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellDrillingDto.cs index 1f9dd844..4e6a22b2 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellDrillingDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellDrillingDto.cs @@ -10,49 +10,58 @@ public class ProcessMapPlanWellDrillingDto : ProcessMapPlanBaseDto /// /// Id режима 0-ручной, 1-ротор, 2 - слайд /// + [Required] [Range(0, 2, ErrorMessage = "Id режима должен быть либо 0-ручной либо, 1-ротор либо 2-слайд")] public int IdMode { get; set; } /// /// Нагрузка /// + [Required] public PlanLimitDto AxialLoad { get; set; } = null!; /// /// Перепад давления /// + [Required] public PlanLimitDto Pressure { get; set; } = null!; /// /// Момент на ВСП /// + [Required] public PlanLimitDto TopDriveTorque { get; set; } = null!; /// /// Обороты на ВСП /// + [Required] public PlanLimitDto TopDriveSpeed { get; set; } = null!; /// /// Расход /// + [Required] public PlanLimitDto Flow { get; set; } = null!; /// /// Плановая механическая скорость, м/ч /// + [Required] [Range(0, 99999.9, ErrorMessage = "Плановая механическая скорость должно быть в пределах от 0 до 99999.9")] public double RopPlan { get; set; } /// /// Плановый процент использования АКБ /// + [Required] [Range(0, 100, ErrorMessage = "Процент использования АКБ должен быть в пределах от 0 до 100")] public double UsageSaub { get; set; } /// /// Плановый процент использования spin master /// + [Required] [Range(0, 100, ErrorMessage = "Процент использования spin master должен быть в пределах от 0 до 100")] public double UsageSpin { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellReamDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellReamDto.cs index 264d3b8b..e577ff86 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellReamDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanWellReamDto.cs @@ -11,54 +11,63 @@ public class ProcessMapPlanWellReamDto : ProcessMapPlanBaseDto, IValidatableObje /// /// Количество повторений /// + [Required] [Range(0, 100, ErrorMessage = "Количество повторений должно быть в пределах от 0 до 100")] public double Repeats { get; set; } /// /// Вращение при движении вверх, об/мин /// + [Required] [Range(0, 99999.9, ErrorMessage = "Количество вращений вверх должно быть в пределах от 0 до 99999.9")] public double SpinUpward { get; set; } /// /// Вращение при движении вниз, об/мин /// + [Required] [Range(0, 99999.9, ErrorMessage = "Количество вращений вниз должно быть в пределах от 0 до 99999.9")] public double SpinDownward { get; set; } /// /// Скорость подъёма, м/ч /// + [Required] [Range(0, 99999.9, ErrorMessage = "Скорость подъёма должна быть в пределах от 0 до 99999.9")] public double SpeedUpward { get; set; } /// /// Скорость спуска, м/ч /// + [Required] [Range(0, 99999.9, ErrorMessage = "Скорость спуска должна быть в пределах от 0 до 99999.9")] public double SpeedDownward { get; set; } /// /// Уставка зятяжки, т /// + [Required] [Range(0, 99999.9, ErrorMessage = "Значение затяжек уставки должно быть в пределах от 0 до 99999.9")] public double SetpointDrag { get; set; } /// /// Уставка посадки, т /// + [Required] [Range(0, 99999.9, ErrorMessage = "Значение посадки уставки должно быть в пределах от 0 до 99999.9")] public double SetpointTight { get; set; } /// /// Давление, атм /// + [Required] [Range(0, 99999.9, ErrorMessage = "Давление должно быть в пределах от 0 до 99999.9")] public double Pressure { get; set; } /// /// Момент, кН*м /// + [Required] [Range(0, 99999.9, ErrorMessage = "Крутящий момент должен быть в пределах от 0 до 99999.9")] public double Torque { get; set; } diff --git a/AsbCloudApp/Data/RequestLogUserDto.cs b/AsbCloudApp/Data/RequestLogUserDto.cs index 935e9f43..a1149653 100644 --- a/AsbCloudApp/Data/RequestLogUserDto.cs +++ b/AsbCloudApp/Data/RequestLogUserDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; using AsbCloudApp.Data.User; namespace AsbCloudApp.Data @@ -11,11 +12,13 @@ namespace AsbCloudApp.Data /// /// Id пользователя /// + [Required] public int UserId { get; set; } /// /// логин /// + [Required] public string Login { get; set; } = string.Empty; /// @@ -26,26 +29,31 @@ namespace AsbCloudApp.Data /// /// время выполнения запроса /// + [Required] public long ElapsedMs { get; set; } /// /// метка времени последнего запроса /// + [Required] public DateTime LastDate { get; set; } /// /// кол-во запросов /// + [Required] public long Requests { get; set; } - + /// /// кол-во ошибок /// + [Required] public long Errors { get; set; } /// /// DTO пользователя /// + [Required] public UserDto User { get; set; } = null!; } } diff --git a/AsbCloudApp/Data/SAUB/DrillTestDto.cs b/AsbCloudApp/Data/SAUB/DrillTestDto.cs index 03f344c2..05e0aa09 100644 --- a/AsbCloudApp/Data/SAUB/DrillTestDto.cs +++ b/AsbCloudApp/Data/SAUB/DrillTestDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data.SAUB @@ -12,16 +13,19 @@ namespace AsbCloudApp.Data.SAUB /// /// Идентификатор drill test /// + [Required] public int Id { get; set; } /// /// Время начала drill test /// + [Required] public DateTimeOffset TimeStampStart { get; set; } /// /// Глубина начала drill test /// + [Required] public float DepthStart { get; set; } /// @@ -32,6 +36,7 @@ namespace AsbCloudApp.Data.SAUB /// /// Параметры теста /// + [Required] public IEnumerable Params { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/SAUB/DrillTestParamsDto.cs b/AsbCloudApp/Data/SAUB/DrillTestParamsDto.cs index f8d9d168..2e6920f3 100644 --- a/AsbCloudApp/Data/SAUB/DrillTestParamsDto.cs +++ b/AsbCloudApp/Data/SAUB/DrillTestParamsDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.SAUB +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.SAUB { /// /// Параметры Drill Test @@ -8,6 +10,7 @@ /// /// Шаг /// + [Required] public int Step { get; set; } /// diff --git a/AsbCloudApp/Data/SAUB/EventDto.cs b/AsbCloudApp/Data/SAUB/EventDto.cs index f426c4eb..302ad145 100644 --- a/AsbCloudApp/Data/SAUB/EventDto.cs +++ b/AsbCloudApp/Data/SAUB/EventDto.cs @@ -10,17 +10,20 @@ namespace AsbCloudApp.Data.SAUB /// /// id события /// + [Required] public int Id { get; set; } /// /// шаблон текста сообщения /// + [Required] public string Message { get; set; } = string.Empty; /// /// id категории события /// + [Required] [Range(0, int.MaxValue, ErrorMessage = "Id категории события не может быть отрицательным")] public int IdCategory { get; set; } @@ -28,16 +31,18 @@ namespace AsbCloudApp.Data.SAUB /// переменная сервера обмена информацией с полевым оборудованием /// public string Tag { get; set; } = string.Empty; - + /// /// тип определения наступления события /// + [Required] [Range(0, int.MaxValue, ErrorMessage = "Id типа события не может быть отрицательным")] public int EventType { get; set; } /// /// флаг, следует ли воспроизводить звук при наступлении события /// + [Required] public int IdSound { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs index f5d08608..17859eaf 100644 --- a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.SAUB +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.SAUB { /// /// DTO рекомендации уставок передаваемых на панель оператора @@ -8,11 +10,13 @@ /// /// отображаемое название уставки /// + [Required] public string DisplayName { get; set; } = string.Empty; /// /// настоящее название уставки (имя переменной в панели оператора) /// + [Required] public string Name { get; set; } = null!; /// @@ -28,11 +32,13 @@ /// /// макс. значение /// + [Required] public double Max { get; set; } = double.MaxValue; /// /// мин значение /// + [Required] public double Min { get; set; } = double.MinValue; } } diff --git a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs index cfb8212f..767ddae5 100644 --- a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using AsbCloudApp.Data.User; namespace AsbCloudApp.Data.SAUB @@ -10,34 +11,41 @@ namespace AsbCloudApp.Data.SAUB public class SetpointsRequestDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] public int IdWell { get; set; } /// /// Id автора запроса /// + [Required] public int IdAuthor { get; set; } /// /// текущее состояние запроса 0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело /// + [Required] public int IdState { get; set; } /// /// отметка времени создания запроса /// + [Required] public DateTime UploadDate { get; set; } = DateTime.Now; /// /// время в секундах актуальности этого запроса /// + [Required] public int ObsolescenceSec { get; set; } /// /// набор уставок: {"название переменной панели"; "рекомендуемое значение"} /// + [Required] public Dictionary Setpoints { get; set; } = new(); /// diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs index 56433c36..e9dc917c 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.SAUB { @@ -10,6 +11,7 @@ namespace AsbCloudApp.Data.SAUB /// /// метка времени данных /// + [Required] public DateTime DateTime { get; set; } /// @@ -28,6 +30,7 @@ namespace AsbCloudApp.Data.SAUB /// /// telemetry id /// + [Required] public int IdTelemetry { get; set; } /// diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs index 46b9cf28..f08a40ab 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.SAUB { @@ -10,16 +11,19 @@ namespace AsbCloudApp.Data.SAUB /// /// Идентификатор телеметрии /// + [Required] public int IdTelemetry { get; set; } /// /// Дата /// + [Required] public DateTime DateTime { get; set; } /// /// Дата /// + [Required] public DateTime Date { get { return DateTime; } @@ -79,11 +83,13 @@ namespace AsbCloudApp.Data.SAUB /// /// Осцилляция включена /// + [Required] public bool IsOscillating => State != 0 & State != 6 & State != 7; /// /// Демпфирование включено /// + [Required] public bool IsDampening => State == 7 && (Mode & 2) > 0; } } diff --git a/AsbCloudApp/Data/ScheduleDto.cs b/AsbCloudApp/Data/ScheduleDto.cs index cd0175b1..ea6d54b0 100644 --- a/AsbCloudApp/Data/ScheduleDto.cs +++ b/AsbCloudApp/Data/ScheduleDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -8,34 +9,41 @@ namespace AsbCloudApp.Data public class ScheduleDto : IId, IWellRelated { /// + [Required] public int Id { get; set; } /// + [Required] public int IdWell { get; set; } /// /// Идентификатор бурильщика /// + [Required] public int IdDriller { get; set; } /// /// Начало смены /// + [Required] public TimeDto ShiftStart { get; set; } = null!; /// /// Конец смены /// + [Required] public TimeDto ShiftEnd { get; set; } = null!; /// /// Начало бурения /// + [Required] public DateTime DrillStart { get; set; } /// /// Конец бурения /// + [Required] public DateTime DrillEnd { get; set; } /// diff --git a/AsbCloudApp/Data/SectionByOperationsDto.cs b/AsbCloudApp/Data/SectionByOperationsDto.cs index 80b1fc3f..5c353dd5 100644 --- a/AsbCloudApp/Data/SectionByOperationsDto.cs +++ b/AsbCloudApp/Data/SectionByOperationsDto.cs @@ -11,42 +11,50 @@ public class SectionByOperationsDto /// /// Id скважины /// + [Required] public int IdWell { get; set; } /// /// 0 = план или 1 = факт или прогноз = 2 /// + [Required] public int IdType { get; set; } /// /// id секции скважины /// + [Required] public int IdWellSectionType { get; set; } /// /// Глубина начала первой операции в секции, м /// + [Required] [Range(0, 50_000)] public double DepthStart { get; set; } /// /// Дата начала первой операции в секции /// + [Required] public DateTimeOffset DateStart { get; set; } /// /// Глубина после завершения последней операции в секции, м /// + [Required] [Range(0, 50_000)] public double DepthEnd { get; set; } /// /// Дата после завершения последней операции в секции /// + [Required] public DateTimeOffset DateEnd { get; set; } /// /// Название /// + [Required] public string Caption { get; set; } = string.Empty; } diff --git a/AsbCloudApp/Data/StatClusterDto.cs b/AsbCloudApp/Data/StatClusterDto.cs index db768ab1..ce3c3c06 100644 --- a/AsbCloudApp/Data/StatClusterDto.cs +++ b/AsbCloudApp/Data/StatClusterDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -9,16 +10,19 @@ namespace AsbCloudApp.Data public class StatClusterDto : IId { /// + [Required] public int Id { get; set; } /// /// название куста /// + [Required] public string Caption { get; set; } = string.Empty; /// /// список статистик скважин куста /// + [Required] public IEnumerable StatsWells { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/StatOperationsDto.cs b/AsbCloudApp/Data/StatOperationsDto.cs index e488e37c..7d082648 100644 --- a/AsbCloudApp/Data/StatOperationsDto.cs +++ b/AsbCloudApp/Data/StatOperationsDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -20,41 +21,49 @@ namespace AsbCloudApp.Data /// /// Глубина, м /// + [Required] public double WellDepthStart { get; set; } /// /// Глубина, м /// + [Required] public double WellDepthEnd { get; set; } /// /// Рейсовая скорость, м/час /// + [Required] public double RouteSpeed { get; set; } /// /// Механическая скорость проходки, м/час /// + [Required] public double Rop { get; set; } /// /// Скорость подъема КНБК /// + [Required] public double BhaUpSpeed { get; set; } /// /// Скорость спуска КНБК /// + [Required] public double BhaDownSpeed { get; set; } /// /// Скорость спуска обсадной колонны /// + [Required] public double CasingDownSpeed { get; set; } /// /// Непроизводительное время /// + [Required] public double NonProductiveHours { get; set; } } } diff --git a/AsbCloudApp/Data/StatSectionDto.cs b/AsbCloudApp/Data/StatSectionDto.cs index 735522f4..19a82518 100644 --- a/AsbCloudApp/Data/StatSectionDto.cs +++ b/AsbCloudApp/Data/StatSectionDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// План-факт статистики по операциям за секцию скважины @@ -6,11 +8,13 @@ public class StatSectionDto : PlanFactDto, IId { /// + [Required] public int Id { get; set; } /// /// название секции /// + [Required] public string Caption { get; set; } = string.Empty; } } diff --git a/AsbCloudApp/Data/StatWellDto.cs b/AsbCloudApp/Data/StatWellDto.cs index af5323f6..ece9756c 100644 --- a/AsbCloudApp/Data/StatWellDto.cs +++ b/AsbCloudApp/Data/StatWellDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -10,46 +11,55 @@ namespace AsbCloudApp.Data public class StatWellDto : IId { /// + [Required] public int Id { get; set; } /// /// название /// + [Required] public string Caption { get; set; } = string.Empty; /// /// тип скважины /// + [Required] public string WellType { get; set; } = string.Empty; /// /// ИД состояния скважины /// + [Required] public int IdState { get; set; } /// /// текст состояния скважины /// + [Required] public string State { get; set; } = string.Empty; /// /// дата прихода последней телеметрии /// + [Required] public DateTime LastTelemetryDate { get; set; } /// /// Статистика по секциям /// + [Required] public IEnumerable Sections { get; set; } = Enumerable.Empty(); /// /// статистика за всю скважину /// + [Required] public PlanFactDto Total { get; set; } = new(); /// /// компании участвующие в строительстве скважины /// + [Required] public IEnumerable Companies { get; set; } = Enumerable.Empty(); /// diff --git a/AsbCloudApp/Data/Subsystems/SubsystemActiveWellStatDto.cs b/AsbCloudApp/Data/Subsystems/SubsystemActiveWellStatDto.cs index 04a7bce1..774ebfe6 100644 --- a/AsbCloudApp/Data/Subsystems/SubsystemActiveWellStatDto.cs +++ b/AsbCloudApp/Data/Subsystems/SubsystemActiveWellStatDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.Subsystems; +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.Subsystems; /// /// Статистика наработки подсистем по активным скважинам @@ -8,6 +10,7 @@ public class SubsystemActiveWellStatDto /// /// Активная скважина /// + [Required] public WellInfoDto Well { get; set; } = null!; /// /// Наработки подсистемы АПД diff --git a/AsbCloudApp/Data/Subsystems/SubsystemDto.cs b/AsbCloudApp/Data/Subsystems/SubsystemDto.cs index bfb7f9d2..0e648de5 100644 --- a/AsbCloudApp/Data/Subsystems/SubsystemDto.cs +++ b/AsbCloudApp/Data/Subsystems/SubsystemDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data.Subsystems +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data.Subsystems { /// /// Описание параметров подсистемы @@ -8,14 +10,17 @@ /// /// Идентификатор подсистемы /// + [Required] public int Id { get; set; } /// /// Наименование подсистемы /// + [Required] public string Name { get; set; } = null!; /// /// Детальное описание подсистемы /// + [Required] public string Description { get; set; } = string.Empty; } } diff --git a/AsbCloudApp/Data/Subsystems/SubsystemStatDto.cs b/AsbCloudApp/Data/Subsystems/SubsystemStatDto.cs index da9c98cb..fa83bdfd 100644 --- a/AsbCloudApp/Data/Subsystems/SubsystemStatDto.cs +++ b/AsbCloudApp/Data/Subsystems/SubsystemStatDto.cs @@ -1,42 +1,52 @@ using System; +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data.Subsystems { /// /// Статистика подсистемы /// public class SubsystemStatDto - { + { /// /// Идентификатор подсистемы /// + [Required] public int IdSubsystem { get; set; } /// /// Название подсистемы /// + [Required] public string SubsystemName { get; set; } = null!; /// /// наработка подсистемы /// + [Required] public double UsedTimeHours { get; set; } /// /// коэффициент использования /// + [Required] public double KUsage { get; set; } /// /// сумма изменения глубин при включеной подсистеме /// + [Required] public double SumDepthInterval { get; set; } /// /// сумма проходок автоопределенных операций выполняемых подсистемой /// + [Required] public double SumOperationDepthInterval { get; set; } /// /// сумма продолжительности автоопределенных операций выполняемых подсистемой /// + [Required] public double SumOperationDurationHours { get; set; } /// /// количество включений подсистемы /// + [Required] public int OperationCount { get; set; } } } diff --git a/AsbCloudApp/Data/WITS/RecordBaseDto.cs b/AsbCloudApp/Data/WITS/RecordBaseDto.cs index 03d77f47..f31bc48c 100644 --- a/AsbCloudApp/Data/WITS/RecordBaseDto.cs +++ b/AsbCloudApp/Data/WITS/RecordBaseDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.WITS { @@ -8,17 +9,21 @@ namespace AsbCloudApp.Data.WITS public abstract class RecordBaseDto : IId, ITelemetryData { /// + [Required] public int Id { get; set; } /// + [Required] public int IdTelemetry { get; set; } /// + [Required] public DateTime DateTime { get; set; } /// /// /// + [Required] public int TimeStamp { get; set; } /// @@ -33,7 +38,7 @@ namespace AsbCloudApp.Data.WITS /// Length = 16, /// ValueType = "A" /// - + [Required] public string Wellid { get; set; } = string.Empty; /// From 42f3c3edd1e08638730ad862b4641f48d791de73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D1=8F=20=D0=91=D0=B8=D0=B7=D1=8E=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0?= Date: Wed, 17 Jan 2024 11:51:57 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs | 1 - AsbCloudApp/Data/FileCategoryDto.cs | 3 +-- AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs | 2 -- AsbCloudApp/Data/SAUB/SetpointInfoDto.cs | 1 - AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs | 1 - AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs | 1 - AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs | 1 - AsbCloudApp/Data/WITS/RecordBaseDto.cs | 1 - 8 files changed, 1 insertion(+), 10 deletions(-) diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs index 455bdf09..e922bf6c 100644 --- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs +++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationStatDto.cs @@ -16,7 +16,6 @@ namespace AsbCloudApp.Data.DetectedOperation /// /// Название операции /// - [Required] public string Category { get; set; } = string.Empty; /// diff --git a/AsbCloudApp/Data/FileCategoryDto.cs b/AsbCloudApp/Data/FileCategoryDto.cs index 7c687170..0b837a7a 100644 --- a/AsbCloudApp/Data/FileCategoryDto.cs +++ b/AsbCloudApp/Data/FileCategoryDto.cs @@ -15,12 +15,11 @@ namespace AsbCloudApp.Data /// полное название /// [Required] - public string Name { get; set; } = string.Empty; + public string Name { get; set; } = null!; /// /// сокращенное название /// - [Required] public string ShortName { get; set; } = string.Empty; } } diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs index 727ef374..6bc073ea 100644 --- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanBaseDto.cs @@ -20,7 +20,6 @@ public abstract class ProcessMapPlanBaseDto : IId, IWellRelated /// /// Id пользователя /// - [Required] public int IdUser { get; set; } /// @@ -33,7 +32,6 @@ public abstract class ProcessMapPlanBaseDto : IId, IWellRelated /// /// Дата последнего изменения /// - [Required] public DateTimeOffset LastUpdate { get; set; } /// diff --git a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs index 17859eaf..b704d0a5 100644 --- a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs @@ -10,7 +10,6 @@ namespace AsbCloudApp.Data.SAUB /// /// отображаемое название уставки /// - [Required] public string DisplayName { get; set; } = string.Empty; /// diff --git a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs index 767ddae5..5ecb4932 100644 --- a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs @@ -33,7 +33,6 @@ namespace AsbCloudApp.Data.SAUB /// /// отметка времени создания запроса /// - [Required] public DateTime UploadDate { get; set; } = DateTime.Now; /// diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs index e9dc917c..3596f70a 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs @@ -30,7 +30,6 @@ namespace AsbCloudApp.Data.SAUB /// /// telemetry id /// - [Required] public int IdTelemetry { get; set; } /// diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs index f08a40ab..1f37036b 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs @@ -11,7 +11,6 @@ namespace AsbCloudApp.Data.SAUB /// /// Идентификатор телеметрии /// - [Required] public int IdTelemetry { get; set; } /// diff --git a/AsbCloudApp/Data/WITS/RecordBaseDto.cs b/AsbCloudApp/Data/WITS/RecordBaseDto.cs index f31bc48c..34cd0f5b 100644 --- a/AsbCloudApp/Data/WITS/RecordBaseDto.cs +++ b/AsbCloudApp/Data/WITS/RecordBaseDto.cs @@ -13,7 +13,6 @@ namespace AsbCloudApp.Data.WITS public int Id { get; set; } /// - [Required] public int IdTelemetry { get; set; } ///