From e095cd1293d242f40a49c107d346fd50d829d69e Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Tue, 16 Jan 2024 13:24:42 +0500 Subject: [PATCH 01/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B0=D1=82=D1=80=D0=B8=D0=B1=D1=83=D1=82=20[Re?= =?UTF-8?q?quired]=20=D0=BD=D0=B0=20non-nullable=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8F=20=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 02/14] =?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; } /// From b8f9a6ae4a3a4ae7fc88d53235a3dc3f46ccfe9e 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 13:12:17 +0500 Subject: [PATCH 03/14] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B0=D1=82=D1=80=D0=B8=D0=B1=D1=83=D1=82=20[Re?= =?UTF-8?q?quired]=20=D0=BD=D0=B0=20non-nullable=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B2=20dtos=20(=D1=87.=203)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Blocks/WellOperation/WellOperationBlockDto.cs | 9 ++++++--- AsbCloudApp/Data/GTR/WitsItemRecordDto.cs | 3 +++ AsbCloudApp/Data/GTR/WitsRecordDto.cs | 3 +++ .../Data/ProcessMaps/WellSectionPlanDto.cs | 3 ++- AsbCloudApp/Data/WellCaseDto.cs | 4 ++++ AsbCloudApp/Data/WellCompositeDto.cs | 7 ++++++- AsbCloudApp/Data/WellDto.cs | 1 + AsbCloudApp/Data/WellFinalDocumentDto.cs | 5 +++++ AsbCloudApp/Data/WellFinalDocumentInputDto.cs | 3 +++ AsbCloudApp/Data/WellFinalDocumentsHistoryDto.cs | 4 ++++ AsbCloudApp/Data/WellGroupOpertionDto.cs | 5 +++++ AsbCloudApp/Data/WellOperationCategoryDto.cs | 1 + AsbCloudApp/Data/WellOperationPlanDto.cs | 2 ++ AsbCloudApp/Data/WellSectionTypeDto.cs | 11 ++++++++--- AsbCloudApp/Data/WellboreDto.cs | 15 +++++++++++---- 15 files changed, 64 insertions(+), 12 deletions(-) diff --git a/AsbCloudApp/Data/DailyReport/Blocks/WellOperation/WellOperationBlockDto.cs b/AsbCloudApp/Data/DailyReport/Blocks/WellOperation/WellOperationBlockDto.cs index f12fd6f3..1030a826 100644 --- a/AsbCloudApp/Data/DailyReport/Blocks/WellOperation/WellOperationBlockDto.cs +++ b/AsbCloudApp/Data/DailyReport/Blocks/WellOperation/WellOperationBlockDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation; @@ -8,13 +9,15 @@ namespace AsbCloudApp.Data.DailyReport.Blocks.WellOperation; /// public class WellOperationBlockDto { - /// - /// Продолжительность бурения за секцию - /// + /// + /// Продолжительность бурения за секцию + /// + [Required] public double SectionDrillingHours { get; set; } /// /// Операции проводимые на скважине /// + [Required] public IEnumerable WellOperations { get; set; } = Enumerable.Empty(); } \ No newline at end of file diff --git a/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs index 46d82e6b..98c4dce8 100644 --- a/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs +++ b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.GTR { @@ -10,11 +11,13 @@ namespace AsbCloudApp.Data.GTR /// /// Record Id /// + [Required] public int IdRecord { get; set; } /// /// Item Id /// + [Required] public int IdItem { get; set; } /// diff --git a/AsbCloudApp/Data/GTR/WitsRecordDto.cs b/AsbCloudApp/Data/GTR/WitsRecordDto.cs index 28e6ba81..e91fa8f0 100644 --- a/AsbCloudApp/Data/GTR/WitsRecordDto.cs +++ b/AsbCloudApp/Data/GTR/WitsRecordDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data.GTR { @@ -11,6 +12,7 @@ namespace AsbCloudApp.Data.GTR /// /// Id записи /// + [Required] public int Id { get; set; } /// @@ -21,6 +23,7 @@ namespace AsbCloudApp.Data.GTR /// /// Параметры. Ключ - id_item. ValueContainer содержит значение. /// + [Required] public Dictionary Items { get; set; } = new(); } } diff --git a/AsbCloudApp/Data/ProcessMaps/WellSectionPlanDto.cs b/AsbCloudApp/Data/ProcessMaps/WellSectionPlanDto.cs index ba4fc8fb..35a99e7c 100644 --- a/AsbCloudApp/Data/ProcessMaps/WellSectionPlanDto.cs +++ b/AsbCloudApp/Data/ProcessMaps/WellSectionPlanDto.cs @@ -14,7 +14,8 @@ public class WellSectionPlanDto : ItemInfoDto, /// public int Id { get; set; } - /// + /// + [Required] public int IdWell { get; set; } /// diff --git a/AsbCloudApp/Data/WellCaseDto.cs b/AsbCloudApp/Data/WellCaseDto.cs index 867d4426..0241faf6 100644 --- a/AsbCloudApp/Data/WellCaseDto.cs +++ b/AsbCloudApp/Data/WellCaseDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -11,16 +12,19 @@ namespace AsbCloudApp.Data /// /// Скважина /// + [Required] public int IdWell { get; set; } /// /// Разрешение для текущего пользователя добавлять ответственных /// + [Required] public bool PermissionToSetPubliher { get; set; } = true; /// /// Документ дела скважины /// + [Required] public IEnumerable WellFinalDocuments { get; set; } = Enumerable.Empty(); } diff --git a/AsbCloudApp/Data/WellCompositeDto.cs b/AsbCloudApp/Data/WellCompositeDto.cs index 4f5966b2..6fe39a40 100644 --- a/AsbCloudApp/Data/WellCompositeDto.cs +++ b/AsbCloudApp/Data/WellCompositeDto.cs @@ -1,4 +1,6 @@ -namespace AsbCloudApp.Data +using System.ComponentModel.DataAnnotations; + +namespace AsbCloudApp.Data { /// /// DTO элемент композитной скважины @@ -6,16 +8,19 @@ public class WellCompositeDto : IWellRelated { /// + [Required] public int IdWell { get; set; } /// /// id скважины входящей в композитную для этой /// + [Required] public int IdWellSrc { get; set; } /// /// id секции скважины входящей в композитную для этой /// + [Required] public int IdWellSectionType { get; set; } } } diff --git a/AsbCloudApp/Data/WellDto.cs b/AsbCloudApp/Data/WellDto.cs index 979d6885..30f524c2 100644 --- a/AsbCloudApp/Data/WellDto.cs +++ b/AsbCloudApp/Data/WellDto.cs @@ -19,6 +19,7 @@ namespace AsbCloudApp.Data /// 1 - в работе, /// 2 - завершена /// + [Required] public int IdState { get; set; } } diff --git a/AsbCloudApp/Data/WellFinalDocumentDto.cs b/AsbCloudApp/Data/WellFinalDocumentDto.cs index 1dab3ac0..a60afd6c 100644 --- a/AsbCloudApp/Data/WellFinalDocumentDto.cs +++ b/AsbCloudApp/Data/WellFinalDocumentDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using AsbCloudApp.Data.User; @@ -12,6 +13,7 @@ namespace AsbCloudApp.Data /// /// Идентификатор категории файла /// + [Required] public int IdCategory { get; set; } /// @@ -22,16 +24,19 @@ namespace AsbCloudApp.Data /// /// Разрешение для текущего пользователя загружать документ /// + [Required] public bool PermissionToUpload { get; set; } = false; /// /// Список ответственных /// + [Required] public IEnumerable Publishers { get; set; } = Enumerable.Empty(); /// /// Количество файлов этой категории загруженных ранее /// + [Required] public int FilesCount { get; set; } /// diff --git a/AsbCloudApp/Data/WellFinalDocumentInputDto.cs b/AsbCloudApp/Data/WellFinalDocumentInputDto.cs index 80052e5c..75cb0ca3 100644 --- a/AsbCloudApp/Data/WellFinalDocumentInputDto.cs +++ b/AsbCloudApp/Data/WellFinalDocumentInputDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -11,11 +12,13 @@ namespace AsbCloudApp.Data /// /// Идентификатор категории файла /// + [Required] public int IdCategory { get; set; } /// /// Список ответственных /// + [Required] public IEnumerable IdsPublishers { get; set; } = Enumerable.Empty(); } } diff --git a/AsbCloudApp/Data/WellFinalDocumentsHistoryDto.cs b/AsbCloudApp/Data/WellFinalDocumentsHistoryDto.cs index 789dc9c0..f08c67e3 100644 --- a/AsbCloudApp/Data/WellFinalDocumentsHistoryDto.cs +++ b/AsbCloudApp/Data/WellFinalDocumentsHistoryDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data { @@ -10,16 +11,19 @@ namespace AsbCloudApp.Data /// /// Вышка /// + [Required] public int IdWell { get; set; } /// /// Наименование категории файла /// + [Required] public int IdCategory { get; set; } /// /// Файлы /// + [Required] public IEnumerable Files { get; set; } = null!; } } diff --git a/AsbCloudApp/Data/WellGroupOpertionDto.cs b/AsbCloudApp/Data/WellGroupOpertionDto.cs index 0839045c..acd8221d 100644 --- a/AsbCloudApp/Data/WellGroupOpertionDto.cs +++ b/AsbCloudApp/Data/WellGroupOpertionDto.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace AsbCloudApp.Data; @@ -10,6 +11,7 @@ public class WellGroupOpertionDto /// /// Id категории /// + [Required] public int IdCategory { get; set; } /// @@ -26,11 +28,13 @@ public class WellGroupOpertionDto /// /// Количество операций /// + [Required] public int Count { get; set; } /// /// Суммарное время операций, мин /// + [Required] public double TotalMinutes { get; set; } /// @@ -51,6 +55,7 @@ public class WellGroupOpertionDto /// /// Общая глубина забоя /// + [Required] public double DeltaDepth { get; set; } /// diff --git a/AsbCloudApp/Data/WellOperationCategoryDto.cs b/AsbCloudApp/Data/WellOperationCategoryDto.cs index 37a5178b..108a31f0 100644 --- a/AsbCloudApp/Data/WellOperationCategoryDto.cs +++ b/AsbCloudApp/Data/WellOperationCategoryDto.cs @@ -8,6 +8,7 @@ namespace AsbCloudApp.Data public class WellOperationCategoryDto : IId { /// + [Required] public int Id { get; set; } /// diff --git a/AsbCloudApp/Data/WellOperationPlanDto.cs b/AsbCloudApp/Data/WellOperationPlanDto.cs index be469948..5c1bac9f 100644 --- a/AsbCloudApp/Data/WellOperationPlanDto.cs +++ b/AsbCloudApp/Data/WellOperationPlanDto.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; namespace AsbCloudApp.Data @@ -14,6 +15,7 @@ namespace AsbCloudApp.Data /// /// коллекция плановых операций /// + [Required] public IEnumerable WellOperationsPlan { get; set; } = Enumerable.Empty(); /// diff --git a/AsbCloudApp/Data/WellSectionTypeDto.cs b/AsbCloudApp/Data/WellSectionTypeDto.cs index 28e9ba68..f8eef939 100644 --- a/AsbCloudApp/Data/WellSectionTypeDto.cs +++ b/AsbCloudApp/Data/WellSectionTypeDto.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace AsbCloudApp.Data; /// @@ -5,18 +7,21 @@ namespace AsbCloudApp.Data; /// public class WellSectionTypeDto : IId { - /// - /// Id секции - /// + /// + /// Id секции + /// + [Required] public int Id { get; set; } /// /// Название типа секции /// + [Required] public string Caption { get; set; } = null!; /// /// Порядок /// + [Required] public float Order { get; set; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/WellboreDto.cs b/AsbCloudApp/Data/WellboreDto.cs index 68c5695b..4edf6256 100644 --- a/AsbCloudApp/Data/WellboreDto.cs +++ b/AsbCloudApp/Data/WellboreDto.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; namespace AsbCloudApp.Data; @@ -15,30 +16,36 @@ public class WellboreDto /// /// Идентификатор /// + [Required] public int Id { get; set; } /// /// Название /// + [Required] public string Name { get; set; } = null!; - + /// /// Начальная глубина ствола /// + [Required] public double DepthStart { get; set; } - + /// /// Конечная глубина скважины /// + [Required] public double DepthEnd { get; set; } - + /// /// Дата начала первой операции /// + [Required] public DateTimeOffset DateStart { get; set; } - + /// /// Дата завершения последней операции /// + [Required] public DateTimeOffset DateEnd { get; set; } } \ No newline at end of file From c8c0ea37fe5365a1efa60b3afd927e879886fe55 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: Fri, 19 Jan 2024 00:26:47 +0500 Subject: [PATCH 04/14] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?appsettings.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repository/FileStorageRepository.cs | 9 +++++++-- AsbCloudWebApi/Controllers/FileController.cs | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/AsbCloudInfrastructure/Repository/FileStorageRepository.cs b/AsbCloudInfrastructure/Repository/FileStorageRepository.cs index 7fad445b..4f9293ec 100644 --- a/AsbCloudInfrastructure/Repository/FileStorageRepository.cs +++ b/AsbCloudInfrastructure/Repository/FileStorageRepository.cs @@ -6,6 +6,8 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; + namespace AsbCloudInfrastructure.Repository; @@ -14,10 +16,13 @@ public class FileStorageRepository : IFileStorageRepository /// /// Директория хранения файлов /// - private readonly string RootPath = "files"; - public FileStorageRepository() + public string RootPath { get; } + + + public FileStorageRepository(IConfiguration configuration) { + RootPath = configuration.GetValue("ContentPath") ?? "files"; } public async Task SaveFileAsync(string filePathRec, Stream fileStreamSrc, CancellationToken token) diff --git a/AsbCloudWebApi/Controllers/FileController.cs b/AsbCloudWebApi/Controllers/FileController.cs index e9a7990b..713b3731 100644 --- a/AsbCloudWebApi/Controllers/FileController.cs +++ b/AsbCloudWebApi/Controllers/FileController.cs @@ -17,7 +17,7 @@ namespace AsbCloudWebApi.Controllers /// [Route("api/well/{idWell}/files")] [ApiController] - [Authorize] + //[Authorize] public class FileController : ControllerBase { private readonly FileService fileService; @@ -39,7 +39,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost] - [Permission] + //[Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task SaveFilesAsync(int idWell, int idCategory, [FromForm] IFormFileCollection files, [FromServices] IUserRepository userRepository, CancellationToken token) @@ -60,7 +60,7 @@ namespace AsbCloudWebApi.Controllers foreach (var file in files) { var fileStream = file.OpenReadStream(); - await fileService.SaveAsync(idWell, idUser ?? 0, idCategory, file.FileName, + await fileService.SaveAsync(idWell, idUser ?? 1, idCategory, file.FileName, fileStream, token).ConfigureAwait(false); } From 183d07639e21ea689c1e283ef2fa48e9af318639 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: Fri, 19 Jan 2024 10:42:02 +0500 Subject: [PATCH 05/14] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/Controllers/FileController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AsbCloudWebApi/Controllers/FileController.cs b/AsbCloudWebApi/Controllers/FileController.cs index 713b3731..e9a7990b 100644 --- a/AsbCloudWebApi/Controllers/FileController.cs +++ b/AsbCloudWebApi/Controllers/FileController.cs @@ -17,7 +17,7 @@ namespace AsbCloudWebApi.Controllers /// [Route("api/well/{idWell}/files")] [ApiController] - //[Authorize] + [Authorize] public class FileController : ControllerBase { private readonly FileService fileService; @@ -39,7 +39,7 @@ namespace AsbCloudWebApi.Controllers /// Токен отмены задачи /// [HttpPost] - //[Permission] + [Permission] [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)] public async Task SaveFilesAsync(int idWell, int idCategory, [FromForm] IFormFileCollection files, [FromServices] IUserRepository userRepository, CancellationToken token) @@ -60,7 +60,7 @@ namespace AsbCloudWebApi.Controllers foreach (var file in files) { var fileStream = file.OpenReadStream(); - await fileService.SaveAsync(idWell, idUser ?? 1, idCategory, file.FileName, + await fileService.SaveAsync(idWell, idUser ?? 0, idCategory, file.FileName, fileStream, token).ConfigureAwait(false); } From 8870931348acfe250e039c35d73259b0897509c4 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: Fri, 19 Jan 2024 10:57:13 +0500 Subject: [PATCH 06/14] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20ContentPath=20=D0=B2=20appsettings.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/appsettings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index 96a3f3bf..73c98743 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -16,6 +16,7 @@ //"userLimits": { // "parallelRequestsToController": 5 //}, + "ContentPath": "…\\data", "email": { "smtpServer": "smtp.timeweb.ru", "sender": "bot@digitaldrilling.ru", From 9c3887092da662254d2bf0221eef8488bd2e96d9 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: Fri, 19 Jan 2024 12:25:57 +0500 Subject: [PATCH 07/14] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20Co?= =?UTF-8?q?ntentPath=20=D0=B2=20appsettings.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudWebApi/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index 73c98743..c8b0198c 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -16,7 +16,7 @@ //"userLimits": { // "parallelRequestsToController": 5 //}, - "ContentPath": "…\\data", + "ContentPath": "../data", "email": { "smtpServer": "smtp.timeweb.ru", "sender": "bot@digitaldrilling.ru", From 9cdf29c6c54ef853d4016968c567111bf4ec2b00 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: Fri, 19 Jan 2024 16:48:00 +0500 Subject: [PATCH 08/14] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudInfrastructure/Repository/FileStorageRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AsbCloudInfrastructure/Repository/FileStorageRepository.cs b/AsbCloudInfrastructure/Repository/FileStorageRepository.cs index 4f9293ec..50e9bff5 100644 --- a/AsbCloudInfrastructure/Repository/FileStorageRepository.cs +++ b/AsbCloudInfrastructure/Repository/FileStorageRepository.cs @@ -22,7 +22,7 @@ public class FileStorageRepository : IFileStorageRepository public FileStorageRepository(IConfiguration configuration) { - RootPath = configuration.GetValue("ContentPath") ?? "files"; + RootPath = configuration.GetValue("ContentPath") ?? "../data"; } public async Task SaveFileAsync(string filePathRec, Stream fileStreamSrc, CancellationToken token) From 82a4d11ccff1064a32e148862082d31590961a57 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: Fri, 19 Jan 2024 16:55:27 +0500 Subject: [PATCH 09/14] =?UTF-8?q?=D0=9F=D0=B0=D0=BF=D0=BA=D0=B0=20data=20g?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B0=20=D0=B2?= =?UTF-8?q?=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fc614d65..ca13ffd6 100644 --- a/.gitignore +++ b/.gitignore @@ -339,4 +339,5 @@ ASALocalRun/ .localhistory/ # BeatPulse healthcheck temp database -healthchecksdb \ No newline at end of file +healthchecksdb +data/ \ No newline at end of file From 38fab5b6f0a1211ba13686fa989cddc8f044d5c8 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: Fri, 19 Jan 2024 17:19:26 +0500 Subject: [PATCH 10/14] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82=D0=B2=D0=BE=20Dat?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs | 9 --------- 1 file changed, 9 deletions(-) diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs index 46b9cf28..e4a5ed3e 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs @@ -17,15 +17,6 @@ namespace AsbCloudApp.Data.SAUB /// public DateTime DateTime { get; set; } - /// - /// Дата - /// - public DateTime Date - { - get { return DateTime; } - set { DateTime = value; } - } - /// /// Ограничение числа оборотов вправо /// From 7379b6e33d837a27485b37d285a07555602ef679 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: Fri, 19 Jan 2024 20:18:11 +0500 Subject: [PATCH 11/14] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82?= =?UTF-8?q?=D0=B2=20TelemetryDataSaubDto=20=D0=B2=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B5=20=D1=81?= =?UTF-8?q?=D0=BE=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82=D0=B2=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8=20TelemetryDataSaub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs index 56433c36..c2a7944b 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 { @@ -23,7 +24,8 @@ namespace AsbCloudApp.Data.SAUB /// 6 - "ПОДЪЕМ С ПРОРАБОТКОЙ" /// 10 - "БЛОКИРОВКА" /// - public short? Mode { get; set; } + [Required] + public short Mode { get; set; } /// /// telemetry id @@ -38,17 +40,17 @@ namespace AsbCloudApp.Data.SAUB /// /// Глубина забоя, м /// - public float? WellDepth { get; set; } + public float WellDepth { get; set; } /// /// Глубина долота, м /// - public float? BitDepth { get; set; } + public float BitDepth { get; set; } /// /// Талевый блок. Положение, м /// - public float? BlockPosition { get; set; } + public float BlockPosition { get; set; } /// /// Талевый блок. Мин положение, м @@ -88,7 +90,7 @@ namespace AsbCloudApp.Data.SAUB /// /// Давление, атм /// - public float? Pressure { get; set; } + public float Pressure { get; set; } /// /// Давление при холостом ходе, атм @@ -123,7 +125,7 @@ namespace AsbCloudApp.Data.SAUB /// /// осевая нагрузка, т /// - public float? AxialLoad { get; set; } + public float AxialLoad { get; set; } /// /// задание осевой нагрузки, т @@ -138,7 +140,7 @@ namespace AsbCloudApp.Data.SAUB /// /// Вес на крюке, т /// - public float? HookWeight { get; set; } + public float HookWeight { get; set; } /// /// Вес на крюке на х.х., т @@ -158,7 +160,7 @@ namespace AsbCloudApp.Data.SAUB /// /// момент ротора, кН*м /// - public float? RotorTorque { get; set; } + public float RotorTorque { get; set; } /// /// момент ротора на х.х., кН*м @@ -178,7 +180,7 @@ namespace AsbCloudApp.Data.SAUB /// /// скорость ротора, об/мин /// - public float? RotorSpeed { get; set; } + public float RotorSpeed { get; set; } /// /// расход, л/с From 5bcffd1ffe263d92afbbf4298c487cbd9239de07 Mon Sep 17 00:00:00 2001 From: Frolov-Nikita Date: Sun, 21 Jan 2024 12:21:23 +0500 Subject: [PATCH 12/14] clean appsettings.json --- AsbCloudWebApi/appsettings.json | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/AsbCloudWebApi/appsettings.json b/AsbCloudWebApi/appsettings.json index c8b0198c..72d50f57 100644 --- a/AsbCloudWebApi/appsettings.json +++ b/AsbCloudWebApi/appsettings.json @@ -13,9 +13,6 @@ "LocalConnection": "Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True" }, "AllowedHosts": "*", - //"userLimits": { - // "parallelRequestsToController": 5 - //}, "ContentPath": "../data", "email": { "smtpServer": "smtp.timeweb.ru", @@ -29,28 +26,5 @@ }, "DirectoryNameHelpPageFiles": "helpPages", "DirectoryManualFiles": "manuals", - "Urls": "http://0.0.0.0:5000" //;https://0.0.0.0:5001" //, - // See https man: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-6.0 - //"Kestrel": { - // "Endpoints": { - // "Http": { - // "Url": "http://0.0.0.0:5000" - // }, - // "Https": { - // "Url": "https://0.0.0.0:5001", - // "Certificate": { - // // use store - // "Subject": "localhost", - // "Store": "My", - // "Location": "CurrentUser", - // "AllowInvalid": true - - // // use file - // "Path": "", - // "KeyPath": "", - // "Password": "" - // } - // } - // } - //} + "Urls": "http://0.0.0.0:5000" } From b13353b994ca5bca1418edcb478597f1a33b5e8e Mon Sep 17 00:00:00 2001 From: Frolov-Nikita Date: Sun, 21 Jan 2024 12:52:46 +0500 Subject: [PATCH 13/14] Add some required attributes --- AsbCloudApp/Data/GTR/WitsItemRecordDto.cs | 2 ++ AsbCloudApp/Data/GTR/WitsRecordDto.cs | 1 + 2 files changed, 3 insertions(+) diff --git a/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs index 98c4dce8..0137754e 100644 --- a/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs +++ b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs @@ -23,11 +23,13 @@ namespace AsbCloudApp.Data.GTR /// /// Дата создания записи /// + [Required] public DateTime Date { get; set; } /// /// Значение /// + [Required] public JsonValue Value { get; set; } = default!; } } \ No newline at end of file diff --git a/AsbCloudApp/Data/GTR/WitsRecordDto.cs b/AsbCloudApp/Data/GTR/WitsRecordDto.cs index e91fa8f0..4e5da733 100644 --- a/AsbCloudApp/Data/GTR/WitsRecordDto.cs +++ b/AsbCloudApp/Data/GTR/WitsRecordDto.cs @@ -18,6 +18,7 @@ namespace AsbCloudApp.Data.GTR /// /// Дата создания записи /// + [Required] public DateTime Date { get; set; } /// From f69bec968717d59d2c851a49e34add42d18923b0 Mon Sep 17 00:00:00 2001 From: Frolov-Nikita Date: Sun, 21 Jan 2024 13:00:03 +0500 Subject: [PATCH 14/14] Fix nullables in WellboreService --- AsbCloudInfrastructure/Services/WellboreService.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/AsbCloudInfrastructure/Services/WellboreService.cs b/AsbCloudInfrastructure/Services/WellboreService.cs index 4cbf06fa..92a94b5d 100644 --- a/AsbCloudInfrastructure/Services/WellboreService.cs +++ b/AsbCloudInfrastructure/Services/WellboreService.cs @@ -7,7 +7,6 @@ using AsbCloudApp.Data.SAUB; using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; -using AsbCloudInfrastructure.Services.SAUB; namespace AsbCloudInfrastructure.Services; @@ -68,10 +67,10 @@ public class WellboreService : IWellboreService if (dataCache is not null) { wellbore.DateStart = dataCache.Value.First.DateTime; - wellbore.DepthStart = dataCache.Value.First.WellDepth!.Value; + wellbore.DepthStart = dataCache.Value.First.WellDepth; wellbore.DateEnd = dataCache.Value.Last.DateTime; - wellbore.DepthEnd = dataCache.Value.Last.WellDepth!.Value; + wellbore.DepthEnd = dataCache.Value.Last.WellDepth; } } @@ -124,7 +123,7 @@ public class WellboreService : IWellboreService if (dataCache is not null) { wellbore.DateEnd = dataCache.Value.Last.DateTime; - wellbore.DepthEnd = dataCache.Value.Last.WellDepth!.Value; + wellbore.DepthEnd = dataCache.Value.Last.WellDepth; } } }