diff --git a/AsbCloudApp/Data/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperationDto.cs index bdcb50b4..0e5cdb8f 100644 --- a/AsbCloudApp/Data/DetectedOperationDto.cs +++ b/AsbCloudApp/Data/DetectedOperationDto.cs @@ -5,16 +5,12 @@ namespace AsbCloudApp.Data /// /// Автоматически определяемая операция /// - public class DetectedOperationDto + public class DetectedOperationDto : IId, IWellRelated { - /// - /// Id в БД - /// + /// public int Id { get; set; } - /// - /// Id скважины - /// + /// public int IdWell { get; set; } /// diff --git a/AsbCloudApp/Data/DrillFlowChartDto.cs b/AsbCloudApp/Data/DrillFlowChartDto.cs index af6dfe8d..7f6337a5 100644 --- a/AsbCloudApp/Data/DrillFlowChartDto.cs +++ b/AsbCloudApp/Data/DrillFlowChartDto.cs @@ -5,16 +5,12 @@ namespace AsbCloudApp.Data /// /// ( ) /// - public class DrillFlowChartDto : IId + public class DrillFlowChartDto : IId, IWellRelated { - /// /// - /// public int Id { get; set; } - /// - /// Id - /// + /// public int IdWell { get; set; } /// diff --git a/AsbCloudApp/Data/DrillParamsDto.cs b/AsbCloudApp/Data/DrillParamsDto.cs index 4e718f89..0d667a58 100644 --- a/AsbCloudApp/Data/DrillParamsDto.cs +++ b/AsbCloudApp/Data/DrillParamsDto.cs @@ -1,45 +1,105 @@ namespace AsbCloudApp.Data { - public class DrillParamsDto : IId + + /// + /// DTO + /// + public class DrillParamsDto : IId, IWellRelated { + /// public int Id { get; set; } + /// public int IdWell { get; set; } + /// + /// + /// public double DepthStart { get; set; } + /// + /// + /// public double DepthEnd { get; set; } + /// + /// id well section type. + /// public int IdWellSectionType { get; set; } + /// + /// axial load min. + /// public double AxialLoadMin { get; set; } + /// + /// axial load avg. + /// public double AxialLoadAvg { get; set; } + /// + /// axial load max. + /// public double AxialLoadMax { get; set; } + /// + /// pressure min. + /// public double PressureMin { get; set; } + /// + /// pressure avg. + /// public double PressureAvg { get; set; } + /// + /// pressure max. + /// public double PressureMax { get; set; } + /// + /// rotor torque min. + /// public double RotorTorqueMin { get; set; } + /// + /// rotor torque avg. + /// public double RotorTorqueAvg { get; set; } + /// + /// rotor torque max. + /// public double RotorTorqueMax { get; set; } + /// + /// rotor speed min. + /// public double RotorSpeedMin { get; set; } + /// + /// rotor speed avg. + /// public double RotorSpeedAvg { get; set; } + /// + /// rotor speed max. + /// public double RotorSpeedMax { get; set; } + /// + /// flow min. + /// public double FlowMin { get; set; } + /// + /// flow avg. + /// public double FlowAvg { get; set; } + /// + /// flow max. + /// public double FlowMax { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/DrillingProgramStateDto.cs b/AsbCloudApp/Data/DrillingProgramStateDto.cs index 93f5282c..9a4efb2d 100644 --- a/AsbCloudApp/Data/DrillingProgramStateDto.cs +++ b/AsbCloudApp/Data/DrillingProgramStateDto.cs @@ -2,6 +2,9 @@ namespace AsbCloudApp.Data { + /// + /// DTO состояния формирования программы бурения + /// public class DrillingProgramStateDto { /// @@ -11,15 +14,41 @@ namespace AsbCloudApp.Data /// 3 - готова /// public int IdState { get; set; } + + /// + /// Ошибка при формировании + /// public DrillingProgramCreateError Error { get; set; } + + /// + /// Файл сформированной программы бурения + /// public FileInfoDto Program { get; set; } + + /// + /// Разрешение редактировать части программы бурения + /// public bool PermissionToEdit { get; set; } + + /// + /// Список частей программы бурения + /// public IEnumerable Parts { get; set; } } + /// + /// DTO ошибки при создании программы бурения + /// public class DrillingProgramCreateError { + /// + /// Текст ошибки для отображения пользователю + /// public string Message { get; set; } + + /// + /// Текст ошибки для разработчика + /// public string Exception { get; set; } } } diff --git a/AsbCloudApp/Data/FileCategoryDto.cs b/AsbCloudApp/Data/FileCategoryDto.cs index 3991419c..d21a558c 100644 --- a/AsbCloudApp/Data/FileCategoryDto.cs +++ b/AsbCloudApp/Data/FileCategoryDto.cs @@ -1,9 +1,21 @@ namespace AsbCloudApp.Data { + /// + /// DTO категории файла + /// public class FileCategoryDto : IId { + /// public int Id { get; set; } + + /// + /// полное название + /// public string Name { get; set; } + + /// + /// сокращенное название + /// public string ShortName { get; set; } } } diff --git a/AsbCloudApp/Data/FileInfoDto.cs b/AsbCloudApp/Data/FileInfoDto.cs index b4563462..e85c6193 100644 --- a/AsbCloudApp/Data/FileInfoDto.cs +++ b/AsbCloudApp/Data/FileInfoDto.cs @@ -3,17 +3,55 @@ using System.Collections.Generic; namespace AsbCloudApp.Data { - public class FileInfoDto : IId + /// + /// DTO информации о файле. Используется для загрузки файла. + /// + public class FileInfoDto : IId, IWellRelated { + /// public int Id { get; set; } + + /// public int IdWell { get; set; } + + /// + /// id категории файла + /// public int IdCategory { get; set; } + + /// + /// Id автора + /// public int? IdAuthor { get; set; } + + /// + /// имя файла + /// public string Name { get; set; } + + /// + /// дата загрузки + /// public DateTime UploadDate { get; set; } + + /// + /// размер в байтах + /// public long Size { get; set; } + + /// + /// инфо о публикации файла на гугл диске + /// public FilePublishInfoDto PublishInfo { get; set; } + + /// + /// DTO автора + /// public UserDto Author { get; set; } + + /// + /// список отметок файла + /// public IEnumerable FileMarks { get; set; } } } diff --git a/AsbCloudApp/Data/FileMarkDto.cs b/AsbCloudApp/Data/FileMarkDto.cs index 786ccf69..5e1504f2 100644 --- a/AsbCloudApp/Data/FileMarkDto.cs +++ b/AsbCloudApp/Data/FileMarkDto.cs @@ -2,22 +2,41 @@ using System; namespace AsbCloudApp.Data { - public class FileMarkDto + /// + /// + /// + public class FileMarkDto: IId { + /// public int Id { get; set; } + + /// + /// id + /// public int IdFile { get; set; } + /// /// 0 - /// 1 - /// public int IdMarkType { get; set; } + /// /// / . /// . /// public DateTime DateCreated { get; set; } + + /// + /// + /// public string Comment { get; set; } + + /// + /// + /// public bool IsDeleted { get; set; } + /// /// . /// . diff --git a/AsbCloudApp/Data/FilePublishInfoDto.cs b/AsbCloudApp/Data/FilePublishInfoDto.cs index 26e7f80b..5a3fd6d2 100644 --- a/AsbCloudApp/Data/FilePublishInfoDto.cs +++ b/AsbCloudApp/Data/FilePublishInfoDto.cs @@ -2,10 +2,24 @@ using System; namespace AsbCloudApp.Data { + /// + /// + /// public class FilePublishInfoDto { + /// + /// + /// public string PublisherLogin { get; set; } + + /// + /// + /// public DateTime Date { get; set; } + + /// + /// + /// public string WebStorageFileUrl { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/ITelemetryData.cs b/AsbCloudApp/Data/ITelemetryData.cs index 2838aef0..95c69c61 100644 --- a/AsbCloudApp/Data/ITelemetryData.cs +++ b/AsbCloudApp/Data/ITelemetryData.cs @@ -3,15 +3,21 @@ namespace AsbCloudApp.Data { /// - /// Интерфейс записи данных телеметрии + /// Telemetry related dto /// - public interface ITelemetryData + public interface ITelemetryRelated { /// /// ИД телеметрии /// int IdTelemetry { get; set; } + } + /// + /// Интерфейс записи данных телеметрии + /// + public interface ITelemetryData: ITelemetryRelated + { /// /// Отметка времени для этой записи /// diff --git a/AsbCloudApp/Data/IWellRelated.cs b/AsbCloudApp/Data/IWellRelated.cs new file mode 100644 index 00000000..28c42911 --- /dev/null +++ b/AsbCloudApp/Data/IWellRelated.cs @@ -0,0 +1,13 @@ +namespace AsbCloudApp.Data +{ + /// + /// Well related DTO + /// + public interface IWellRelated + { + /// + /// Well id in db + /// + public int IdWell { get; set; } + } +} diff --git a/AsbCloudApp/Data/MeasureDto.cs b/AsbCloudApp/Data/MeasureDto.cs index a8acb428..24418630 100644 --- a/AsbCloudApp/Data/MeasureDto.cs +++ b/AsbCloudApp/Data/MeasureDto.cs @@ -3,18 +3,35 @@ using System.Collections.Generic; namespace AsbCloudApp.Data { - public class MeasureDto : IId + /// + /// инфо о результатах замера + /// + public class MeasureDto : IId, IWellRelated { + /// public int Id { get; set; } + /// public int IdWell { get; set; } + /// + /// Id категории замера + /// public int IdCategory { get; set; } + /// + /// название категории замера + /// public string CategoryName { get; set; } + /// + /// отметка времени замера + /// public DateTime Timestamp { get; set; } + /// + /// данные замера + /// public Dictionary Data { get; set; } } } diff --git a/AsbCloudApp/Data/MessageDto.cs b/AsbCloudApp/Data/MessageDto.cs index 423f12cd..31c9a794 100644 --- a/AsbCloudApp/Data/MessageDto.cs +++ b/AsbCloudApp/Data/MessageDto.cs @@ -7,16 +7,32 @@ namespace AsbCloudApp.Data /// public class MessageDto : IId { + /// public int Id { get; set; } + /// + /// дата появления события + /// public DateTime Date { get; set; } + /// + /// категория события + /// public int CategoryId { get; set; } + /// + /// глубина забоя, при котором событие возникло + /// public double WellDepth { get; set; } + /// + /// пользователь панели оператора + /// public string User { get; set; } + /// + /// текст сообщения + /// public string Message { get; set; } } } diff --git a/AsbCloudApp/Data/PaginationContainer.cs b/AsbCloudApp/Data/PaginationContainer.cs index 49d49d6a..bdee31be 100644 --- a/AsbCloudApp/Data/PaginationContainer.cs +++ b/AsbCloudApp/Data/PaginationContainer.cs @@ -8,11 +8,18 @@ namespace AsbCloudApp.Data /// public class PaginationContainer { + /// + /// конструктор + /// public PaginationContainer() { Items = new List(4); } + /// + /// конструктор + /// + /// public PaginationContainer(int capacity) { Items = new List(capacity); diff --git a/AsbCloudApp/Data/PermissionDto.cs b/AsbCloudApp/Data/PermissionDto.cs index 6c15e61f..ee4235ae 100644 --- a/AsbCloudApp/Data/PermissionDto.cs +++ b/AsbCloudApp/Data/PermissionDto.cs @@ -1,9 +1,22 @@ namespace AsbCloudApp.Data { + /// + /// Разрешение для группы пользователей сделать что-либо через web-api.
+ /// применяется как возможность доступа к Endpoint.
+ ///
public class PermissionDto : IId { + /// public int Id { get; set; } + + /// + /// Название + /// public string Name { get; set; } + + /// + /// Описание + /// public string Description { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/PlanFactBase.cs b/AsbCloudApp/Data/PlanFactBase.cs index b4ba5ac0..fc3dcff4 100644 --- a/AsbCloudApp/Data/PlanFactBase.cs +++ b/AsbCloudApp/Data/PlanFactBase.cs @@ -1,8 +1,19 @@ namespace AsbCloudApp.Data { + /// + /// DTO объединяющее плановые и фактические значения + /// + /// public class PlanFactBase { + /// + /// Плановое значение + /// public T Plan { get; set; } + + /// + /// Фактическое значение + /// public T Fact { get; set; } } } diff --git a/AsbCloudApp/Data/PlanFactPredictBase.cs b/AsbCloudApp/Data/PlanFactPredictBase.cs index 22ad9f5a..2147aa7f 100644 --- a/AsbCloudApp/Data/PlanFactPredictBase.cs +++ b/AsbCloudApp/Data/PlanFactPredictBase.cs @@ -5,8 +5,19 @@ ///
public class PlanFactPredictBase { + /// + /// плановое значение + /// public T Plan { get; set; } + + /// + /// фактическое значение + /// public T Fact { get; set; } + + /// + /// предсказанное значение + /// public T Predict { get; set; } } } diff --git a/AsbCloudApp/Data/ReportProgressDto.cs b/AsbCloudApp/Data/ReportProgressDto.cs index f3380d56..6a3caa51 100644 --- a/AsbCloudApp/Data/ReportProgressDto.cs +++ b/AsbCloudApp/Data/ReportProgressDto.cs @@ -1,10 +1,28 @@ namespace AsbCloudApp.Data { + /// + /// DTO прогресса генерации рапорта-диаграммы + /// public class ReportProgressDto { + /// + /// прогресс 0 - 100% + /// public float Progress { get; set; } + + /// + /// название текущей операции генерации + /// public string Operation { get; set; } + + /// + /// номер текущей страницы + /// public int CurrentPage { get; set; } + + /// + /// предполагаемое суммарное количество страниц + /// public int TotalPages { get; set; } } } diff --git a/AsbCloudApp/Data/ReportPropertiesDto.cs b/AsbCloudApp/Data/ReportPropertiesDto.cs index 8b889a2d..7ee7f099 100644 --- a/AsbCloudApp/Data/ReportPropertiesDto.cs +++ b/AsbCloudApp/Data/ReportPropertiesDto.cs @@ -2,16 +2,50 @@ namespace AsbCloudApp.Data { - public class ReportPropertiesDto : IId + /// + /// DTO формирования рапорта + /// + public class ReportPropertiesDto : IId, IWellRelated { + /// public int Id { get; set; } - public string Name { get; set; } - public FileInfoDto File { get; set; } + + /// public int IdWell { get; set; } + + /// + /// название + /// + public string Name { get; set; } + + /// + /// + /// + public FileInfoDto File { get; set; } + + /// + /// Дата формирования + /// public DateTime Date { get; set; } + + /// + /// Дата начала рапорта + /// public DateTime Begin { get; set; } + + /// + /// Дата окончания рапорта + /// public DateTime End { get; set; } + + /// + /// шаг между точками диаграммы + /// public int Step { get; set; } + + /// + /// формат файла + /// public string Format { get; set; } } } diff --git a/AsbCloudApp/Data/RequestLogDto.cs b/AsbCloudApp/Data/RequestLogDto.cs index 4b7d2380..28b3ff79 100644 --- a/AsbCloudApp/Data/RequestLogDto.cs +++ b/AsbCloudApp/Data/RequestLogDto.cs @@ -2,18 +2,64 @@ namespace AsbCloudApp.Data { + /// + /// DTO журнала запросов + /// public class RequestLogDto { + /// + /// логин пользователя + /// public string UserLogin { get; set; } + + /// + /// Id пользователя + /// public int UserId { get; set; } + + /// + /// IP адрес пользователя + /// public string UserIp { get; set; } + + /// + /// метод запроса (GET, POST,..) + /// public string RequestMethod { get; set; } + + /// + /// url + /// public string RequestPath { get; set; } + + /// + /// Referer + /// public string Referer { get; set; } + + /// + /// продолжительность выполнения + /// public long ElapsedMilliseconds { get; set; } + + /// + /// http status [200 - Ok, ...] + /// public int Status { get; set; } + + /// + /// сообщение об ошибке, если она произошла + /// public string ExceptionMessage { get; set; } + + /// + /// метка времени запроса + /// public DateTime Date { get; set; } + + /// + /// стек вызовов + /// public string ExceptionStack { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/RequestLogUserDto.cs b/AsbCloudApp/Data/RequestLogUserDto.cs index 80e7a740..1aed73d0 100644 --- a/AsbCloudApp/Data/RequestLogUserDto.cs +++ b/AsbCloudApp/Data/RequestLogUserDto.cs @@ -2,15 +2,49 @@ namespace AsbCloudApp.Data { + /// + /// DTO статистики запросов по пользователю + /// public class RequestLogUserDto { + /// + /// Id пользователя + /// public int UserId { get; set; } + + /// + /// логин + /// public string Login { get; set; } + + /// + /// IP адрес пользователя + /// public string Ip { get; set; } + + /// + /// время выполнения запроса + /// public long ElapsedMs { get; set; } + + /// + /// метка времени последнего запроса + /// public DateTime LastDate { get; set; } + + /// + /// кол-во запросов + /// public long Requests { get; set; } + + /// + /// кол-во ошибок + /// public long Errors { get; set; } + + /// + /// DTO пользователя + /// public UserDto User { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/EventDto.cs b/AsbCloudApp/Data/SAUB/EventDto.cs index 9d81dc56..80d0071f 100644 --- a/AsbCloudApp/Data/SAUB/EventDto.cs +++ b/AsbCloudApp/Data/SAUB/EventDto.cs @@ -1,12 +1,38 @@ namespace AsbCloudApp.Data.SAUB { + /// + /// Описание шаблона события панели оператора + /// public class EventDto : IId { + /// + /// id события + /// public int Id { get; set; } + + /// + /// шаблон текста сообщения + /// public string Message { get; set; } + + /// + /// id категории события + /// public int IdCategory { get; set; } + + /// + /// переменная сервера обмена информацией с полевым оборудованием + /// public string Tag { get; set; } + + /// + /// тип определения наступления события + /// public int EventType { get; set; } + + /// + /// флаг, следует ли воспроизводить звук при наступлении события + /// public int IdSound { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs index 131696c2..4d853c36 100644 --- a/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointInfoDto.cs @@ -1,12 +1,38 @@ namespace AsbCloudApp.Data.SAUB { + /// + /// DTO рекомендации уставок передаваемых на панель оператора + /// public class SetpointInfoDto { + /// + /// отображаемое название уставки + /// public string DisplayName { get; set; } + + /// + /// настоящее название уставки (имя переменной в панели оператора) + /// public string Name { get; set; } + + /// + /// единицы измерения + /// public string Units { get; set; } + + /// + /// комментарий + /// public string Comment { get; set; } + + /// + /// макс. значение + /// public double Max { get; set; } + + /// + /// мин значение + /// public double Min { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs index 84948f68..08850969 100644 --- a/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs +++ b/AsbCloudApp/Data/SAUB/SetpointsRequestDto.cs @@ -3,25 +3,55 @@ using System.Collections.Generic; namespace AsbCloudApp.Data.SAUB { - public class SetpointsRequestDto : IId + /// + /// DTO запроса для предложения по изменению уставок на панели оператора + /// + public class SetpointsRequestDto : IId, IWellRelated { + /// public int Id { get; set; } + /// public int IdWell { get; set; } + /// + /// Id автора запроса + /// public int IdAuthor { get; set; } + /// + /// текущее состояние запроса 0: неизвестно, 1:ожидает отправки, 2: отправлено, 3: принято оператором, 4: отклонено оператором, 5: устарело + /// public int IdState { get; set; } + /// + /// отметка времени создания запроса + /// public DateTime UploadDate { get; set; } + /// + /// время в секундах актуальности этого запроса + /// public int ObsolescenceSec { get; set; } + /// + /// набор уставок: {"название переменной панели"; "рекомендуемое значение"} + /// public Dictionary Setpoints { get; set; } + + /// + /// Комментарий для оператора панели + /// public string Comment { get; set; } + /// + /// DTO скважины + /// public WellDto Well { get; set; } + /// + /// DTO автора + /// public UserDto Author { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs index 3705f867..5b741abc 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSaubDto.cs @@ -7,7 +7,14 @@ namespace AsbCloudApp.Data.SAUB ///
public class TelemetryDataSaubDto : ITelemetryData { + /// + /// метка времени данных + /// public DateTime DateTime { get; set; } + + /// + /// метка времени данных (legacy) + /// public DateTime Date // TODO: remove this legacy after all panels updated { get { return DateTime; } @@ -97,44 +104,104 @@ namespace AsbCloudApp.Data.SAUB /// public float? PressureIdle { get; set; } + /// + /// действующее задание давления + /// public float? PressureSp { get; set; } + /// + /// задание давления для роторного режима + /// public float? PressureSpRotor { get; set; } + /// + /// задание давления для режима слайда + /// public float? PressureSpSlide { get; set; } + /// + /// задание давления для проработки + /// public float? PressureSpDevelop { get; set; } + /// + /// ограничение макс перепада давления + /// public float? PressureDeltaLimitMax { get; set; } + /// + /// осевая нагрузка + /// public float? AxialLoad { get; set; } + /// + /// задание осевой нагрузки + /// public float? AxialLoadSp { get; set; } + /// + /// ограничение макс. осевой нагрузки + /// public float? AxialLoadLimitMax { get; set; } + /// + /// Вес на крюке + /// public float? HookWeight { get; set; } + /// + /// Вес на крюке на х.х. + /// public float? HookWeightIdle { get; set; } + /// + /// ограничение мин веса на крюке + /// public float? HookWeightLimitMin { get; set; } + /// + /// ограничение макс веса на крюке + /// public float? HookWeightLimitMax { get; set; } + /// + /// момент ротора + /// public float? RotorTorque { get; set; } + /// + /// момент ротора на х.х. + /// public float? RotorTorqueIdle { get; set; } + /// + /// задание момента ротора + /// public float? RotorTorqueSp { get; set; } + /// + /// ограничение момента ротора + /// public float? RotorTorqueLimitMax { get; set; } + /// + /// скорость ротора + /// public float? RotorSpeed { get; set; } + /// + /// расход + /// public float? Flow { get; set; } + /// + /// расход на х.х. + /// public float? FlowIdle { get; set; } + /// + /// ограничение макс расхода + /// public float? FlowDeltaLimitMax { get; set; } /// @@ -147,6 +214,9 @@ namespace AsbCloudApp.Data.SAUB /// public short? MseState { get; set; } + /// + /// MSE + /// public float? Mse { get; set; } } } \ No newline at end of file diff --git a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs index 122ee2ee..1011f214 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryDataSpinDto.cs @@ -2,8 +2,10 @@ namespace AsbCloudApp.Data.SAUB { +#pragma warning disable CS1591 // Отсутствует комментарий XML для открытого видимого типа или члена public class TelemetryDataSpinDto : ITelemetryData { + /// public int IdTelemetry { get; set; } public DateTime DateTime { get; set; } public DateTime Date // TODO: remove this legacy after all panels updated @@ -75,4 +77,5 @@ namespace AsbCloudApp.Data.SAUB public short? State { get; set; } public float? BreakAngleLeft { get; set; } } +#pragma warning restore CS1591 // Отсутствует комментарий XML для открытого видимого типа или члена } diff --git a/AsbCloudApp/Data/SAUB/TelemetryInfoDto.cs b/AsbCloudApp/Data/SAUB/TelemetryInfoDto.cs index 7b9f16cf..62bebfec 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryInfoDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryInfoDto.cs @@ -2,18 +2,64 @@ namespace AsbCloudApp.Data.SAUB { + /// + /// общая информация о панели оператора + /// public class TelemetryInfoDto { + /// + /// дата начала бурения (заполнения данных на панели) + /// public DateTime DrillingStartDate { get; set; } + + /// + /// идентификатор временной зоны + /// public string TimeZoneId { get; set; } + + /// + /// смещение в часах относительно UTC + /// public double TimeZoneOffsetTotalHours { get; set; } + + /// + /// название скважины + /// public string Well { get; set; } + + /// + /// название куста + /// public string Cluster { get; set; } + + /// + /// название заказчика + /// public string Customer { get; set; } + + /// + /// название месторождения + /// public string Deposit { get; set; } + + /// + /// версия ПО панели оператора + /// public string HmiVersion { get; set; } + + /// + /// версия ПО ПЛК САУБ + /// public string SaubPlcVersion { get; set; } + + /// + /// версия ПО ПЛК Спин мастер + /// public string SpinPlcVersion { get; set; } + + /// + /// комментарий + /// public string Comment { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs b/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs index 02d9d728..38188ed0 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs @@ -7,14 +7,49 @@ namespace AsbCloudApp.Data.SAUB /// public class TelemetryMessageDto : IId { + /// + /// Id сообщения в базе панели оператора + /// public int Id { get; set; } + + /// + /// отметка времени + /// public DateTime Date { get; set; } + + /// + /// глубина забоя + /// public double WellDepth { get; set; } + + /// + /// Id события которое генерировало это сообщение + /// public int IdEvent { get; set; } + + /// + /// идентификатор пользователя телеметрии + /// public int? IdTelemetryUser { get; set; } + + /// + /// аргумент №0 для подстановки в шаблон сообщения + /// public string Arg0 { get; set; } + + /// + /// аргумент №1 для подстановки в шаблон сообщения + /// public string Arg1 { get; set; } + + /// + /// аргумент №2 для подстановки в шаблон сообщения + /// public string Arg2 { get; set; } + + /// + /// аргумент №3 для подстановки в шаблон сообщения + /// public string Arg3 { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/TelemetryUserDto.cs b/AsbCloudApp/Data/SAUB/TelemetryUserDto.cs index 83b8ba26..5fb67dc0 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryUserDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryUserDto.cs @@ -1,15 +1,31 @@ namespace AsbCloudApp.Data.SAUB { + /// + /// Пользователь панели оператора + /// public class TelemetryUserDto : IId { + /// public int Id { get; set; } + /// + /// Имя + /// public string Name { get; set; } + /// + /// Фамилия + /// public string Surname { get; set; } + /// + /// Отчество + /// public string Patronymic { get; set; } + /// + /// Уровень доступа + /// public int Level { get; set; } } } diff --git a/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs b/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs index b4276962..45c9f472 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryWirelineRunOutDto.cs @@ -2,8 +2,14 @@ namespace AsbCloudApp.Data.SAUB { + /// + /// DTO телеметрии наработки талевого каната + /// public class TelemetryWirelineRunOutDto { + /// + /// отметка времени + /// public DateTime DateTime { get; set; } /// diff --git a/AsbCloudApp/Data/ScheduleDto.cs b/AsbCloudApp/Data/ScheduleDto.cs index 610cdab7..ade938f4 100644 --- a/AsbCloudApp/Data/ScheduleDto.cs +++ b/AsbCloudApp/Data/ScheduleDto.cs @@ -5,23 +5,19 @@ namespace AsbCloudApp.Data /// /// Описание данных графика работ /// - public class ScheduleDto : IId + public class ScheduleDto : IId, IWellRelated { - /// - /// Идентификатор в БД - /// + /// public int Id { get; set; } + /// + public int IdWell { get; set; } + /// /// Идентификатор бурильщика /// public int IdDriller { get; set; } - /// - /// Идентификатор скважины - /// - public int IdWell { get; set; } - /// /// Начало смены /// diff --git a/AsbCloudApp/Data/SimpleTimezoneDto.cs b/AsbCloudApp/Data/SimpleTimezoneDto.cs index 2ccdacbd..3d9dcc55 100644 --- a/AsbCloudApp/Data/SimpleTimezoneDto.cs +++ b/AsbCloudApp/Data/SimpleTimezoneDto.cs @@ -1,11 +1,26 @@ namespace AsbCloudApp.Data { + /// + /// + /// public class SimpleTimezoneDto { + /// + /// UTC + /// public double Hours { get; set; } + + /// + /// + /// public string TimezoneId { get; set; } + + /// + /// + /// public bool IsOverride { get; set; } + /// public override bool Equals(object obj) { if (obj is SimpleTimezoneDto tTimeZone @@ -16,6 +31,7 @@ namespace AsbCloudApp.Data return false; } + /// public override int GetHashCode() => Hours.GetHashCode() | TimezoneId.GetHashCode() diff --git a/AsbCloudApp/Data/StatClusterDto.cs b/AsbCloudApp/Data/StatClusterDto.cs index 26daee7c..0bcbfe65 100644 --- a/AsbCloudApp/Data/StatClusterDto.cs +++ b/AsbCloudApp/Data/StatClusterDto.cs @@ -2,10 +2,22 @@ namespace AsbCloudApp.Data { + /// + /// DTO статистики скважин куста + /// public class StatClusterDto : IId { + /// public int Id { get; set; } + + /// + /// название куста + /// public string Caption { get; set; } + + /// + /// список статистик скважин куста + /// public IEnumerable StatsWells { get; set; } } } diff --git a/AsbCloudApp/Data/StatOperationsDto.cs b/AsbCloudApp/Data/StatOperationsDto.cs index 90f221ac..e488e37c 100644 --- a/AsbCloudApp/Data/StatOperationsDto.cs +++ b/AsbCloudApp/Data/StatOperationsDto.cs @@ -2,6 +2,9 @@ namespace AsbCloudApp.Data { + /// + /// DTO статистики операций + /// public class StatOperationsDto { /// diff --git a/AsbCloudApp/Data/StatSectionDto.cs b/AsbCloudApp/Data/StatSectionDto.cs index b3563645..f0da2188 100644 --- a/AsbCloudApp/Data/StatSectionDto.cs +++ b/AsbCloudApp/Data/StatSectionDto.cs @@ -1,8 +1,16 @@ namespace AsbCloudApp.Data { + /// + /// План-факт статистики по операциям за секцию скважины + /// public class StatSectionDto : PlanFactBase, IId { + /// public int Id { get; set; } + + /// + /// название секции + /// public string Caption { get; set; } } } diff --git a/AsbCloudApp/Data/StatWellDto.cs b/AsbCloudApp/Data/StatWellDto.cs index 81d20ff3..08581313 100644 --- a/AsbCloudApp/Data/StatWellDto.cs +++ b/AsbCloudApp/Data/StatWellDto.cs @@ -3,16 +3,52 @@ using System.Collections.Generic; namespace AsbCloudApp.Data { + /// + /// DTO статистики по операциям за скважину + /// public class StatWellDto : IId { + /// public int Id { get; set; } + + /// + /// название + /// public string Caption { get; set; } + + /// + /// тип скважины + /// public string WellType { get; set; } + + /// + /// ИД состояния скважины + /// public int IdState { get; set; } + + /// + /// текст состояния скважины + /// public string State { get; set; } + + /// + /// дата прихода последней телеметрии + /// public DateTime LastTelemetryDate { get; set; } + + /// + /// Статистика по секциям + /// public IEnumerable Sections { get; set; } + + /// + /// статистика за всю скважину + /// public PlanFactBase Total { get; set; } + + /// + /// компании участвующие в строительстве скважины + /// public IEnumerable Companies { get; set; } } } diff --git a/AsbCloudApp/Data/UserDto.cs b/AsbCloudApp/Data/UserDto.cs index e546d922..15cc5408 100644 --- a/AsbCloudApp/Data/UserDto.cs +++ b/AsbCloudApp/Data/UserDto.cs @@ -1,17 +1,62 @@ namespace AsbCloudApp.Data { + /// + /// DTO пользователя платформы + /// public class UserDto : IId { + /// public int Id { get; set; } + + /// + /// логин + /// public string Login { get; set; } + + + /// + /// Имя + /// public string Name { get; set; } + + /// + /// Фамилия + /// public string Surname { get; set; } + + /// + /// Отчество + /// public string Patronymic { get; set; } + + /// + /// Email + /// public string Email { get; set; } + + /// + /// Phone + /// public string Phone { get; set; } + + /// + /// Должность + /// public string Position { get; set; } + + /// + /// Id компании + /// public int? IdCompany { get; set; } + + /// + /// Id состояния пользователя + /// public short? IdState { get; set; } + + /// + /// DTO компании + /// public CompanyDto Company { get; set; } } } diff --git a/AsbCloudApp/Data/UserExtendedDto.cs b/AsbCloudApp/Data/UserExtendedDto.cs index c484c30b..5a8adea5 100644 --- a/AsbCloudApp/Data/UserExtendedDto.cs +++ b/AsbCloudApp/Data/UserExtendedDto.cs @@ -2,8 +2,12 @@ namespace AsbCloudApp.Data { + /// public class UserExtendedDto : UserDto { + /// + /// Роли пользователя + /// public IEnumerable RoleNames { get; set; } } } diff --git a/AsbCloudApp/Data/UserRegistrationDto.cs b/AsbCloudApp/Data/UserRegistrationDto.cs index 6d8d53e2..a1d9033f 100644 --- a/AsbCloudApp/Data/UserRegistrationDto.cs +++ b/AsbCloudApp/Data/UserRegistrationDto.cs @@ -1,7 +1,11 @@ namespace AsbCloudApp.Data { + /// public class UserRegistrationDto : UserDto { + /// + /// пароль, используется только при регистрации. + /// public string Password { get; set; } } } diff --git a/AsbCloudApp/Data/UserRoleDto.cs b/AsbCloudApp/Data/UserRoleDto.cs index 94268a16..aa525c91 100644 --- a/AsbCloudApp/Data/UserRoleDto.cs +++ b/AsbCloudApp/Data/UserRoleDto.cs @@ -3,14 +3,37 @@ using System.Text.Json.Serialization; namespace AsbCloudApp.Data { + /// + /// Роль пользователя платформы + /// public class UserRoleDto : IId { + /// public int Id { get; set; } + + /// + /// название + /// public string Caption { get; set; } + + /// + /// id типа роли + /// public int IdType { get; set; } + + /// + /// список разрешений + /// public IEnumerable Permissions { get; set; } + + /// + /// Включенные роли + /// public virtual ICollection Roles { get; set; } + /// + /// Пользователи в роли + /// [JsonIgnore] public virtual ICollection Users { get; set; } diff --git a/AsbCloudApp/Data/UserTokenDto.cs b/AsbCloudApp/Data/UserTokenDto.cs index 24defd9a..a561a77a 100644 --- a/AsbCloudApp/Data/UserTokenDto.cs +++ b/AsbCloudApp/Data/UserTokenDto.cs @@ -2,9 +2,17 @@ namespace AsbCloudApp.Data { + /// public class UserTokenDto : UserExtendedDto { + /// + /// все разрешения пользователя + /// public IEnumerable Permissions { get; set; } + + /// + /// bearer token (для работы с web-api) + /// public string Token { get; set; } } } diff --git a/AsbCloudApp/Data/WITS/RecordBaseDto.cs b/AsbCloudApp/Data/WITS/RecordBaseDto.cs index 78777041..e5daede1 100644 --- a/AsbCloudApp/Data/WITS/RecordBaseDto.cs +++ b/AsbCloudApp/Data/WITS/RecordBaseDto.cs @@ -5,14 +5,20 @@ namespace AsbCloudApp.Data.WITS /// /// This is base class for all WITS-0 records /// - public abstract class RecordBaseDto : ITelemetryData + public abstract class RecordBaseDto : IId, ITelemetryData { + /// public int Id { get; set; } + /// public int IdTelemetry { get; set; } + /// public DateTime DateTime { get; set; } + /// + /// + /// public int TimeStamp { get; set; } /// diff --git a/AsbCloudApp/Data/WellCompositeDto.cs b/AsbCloudApp/Data/WellCompositeDto.cs index 678fe989..4f5966b2 100644 --- a/AsbCloudApp/Data/WellCompositeDto.cs +++ b/AsbCloudApp/Data/WellCompositeDto.cs @@ -1,11 +1,21 @@ namespace AsbCloudApp.Data { - public class WellCompositeDto + /// + /// DTO элемент композитной скважины + /// + public class WellCompositeDto : IWellRelated { + /// public int IdWell { get; set; } + /// + /// id скважины входящей в композитную для этой + /// public int IdWellSrc { get; set; } + /// + /// id секции скважины входящей в композитную для этой + /// public int IdWellSectionType { get; set; } } } diff --git a/AsbCloudApp/Data/WellOperationCategoryDto.cs b/AsbCloudApp/Data/WellOperationCategoryDto.cs index 04a8fcd0..84a54934 100644 --- a/AsbCloudApp/Data/WellOperationCategoryDto.cs +++ b/AsbCloudApp/Data/WellOperationCategoryDto.cs @@ -1,11 +1,21 @@ namespace AsbCloudApp.Data { - public class WellOperationCategoryDto + /// + /// DTO категория операции + /// + public class WellOperationCategoryDto: IId { + /// public int Id { get; set; } + /// + /// название + /// public string Name { get; set; } + /// + /// код операции + /// public int Code { get; set; } } } diff --git a/AsbCloudApp/Data/WellOperationDto.cs b/AsbCloudApp/Data/WellOperationDto.cs index a140288b..4c451d26 100644 --- a/AsbCloudApp/Data/WellOperationDto.cs +++ b/AsbCloudApp/Data/WellOperationDto.cs @@ -2,20 +2,40 @@ namespace AsbCloudApp.Data { - public class WellOperationDto : IId + /// + /// Операции на скважине (заведенные пользователем) + /// + public class WellOperationDto : IId, IWellRelated { + /// public int Id { get; set; } + /// public int IdWell { get; set; } + /// + /// id секции скважины + /// public int IdWellSectionType { get; set; } + /// + /// название секции скважины + /// public string WellSectionTypeName { get; set; } + /// + /// id категории операции + /// public int IdCategory { get; set; } + /// + /// название категории операции + /// public string CategoryName { get; set; } + /// + /// дополнительная информация по операции + /// public string CategoryInfo { get; set; } /// diff --git a/AsbCloudApp/Exceptions/ArgumentInvalidException.cs b/AsbCloudApp/Exceptions/ArgumentInvalidException.cs index 75b31566..2e70b871 100644 --- a/AsbCloudApp/Exceptions/ArgumentInvalidException.cs +++ b/AsbCloudApp/Exceptions/ArgumentInvalidException.cs @@ -7,22 +7,40 @@ namespace AsbCloudApp.Exceptions /// public class ArgumentInvalidException : Exception { + /// + /// название аргумента + /// public string ParamName { get; } + /// + /// конструктор + /// + /// + /// public ArgumentInvalidException(string message, string paramName = default) : base(message) { ParamName = paramName; } + /// + /// преобразование в объект валидации + /// + /// public object ToValaidationErrorObject() => MakeValidationError(ParamName, Message); + /// + /// фабрика объекта валидации + /// + /// + /// + /// public static object MakeValidationError(string paramName, params string[] errors) => new { name = paramName, - errors = errors, + errors, }; } } diff --git a/AsbCloudApp/Services/IDrillParamsService.cs b/AsbCloudApp/Services/IDrillParamsService.cs index 69a091d1..e95e74b8 100644 --- a/AsbCloudApp/Services/IDrillParamsService.cs +++ b/AsbCloudApp/Services/IDrillParamsService.cs @@ -5,25 +5,78 @@ using System.Threading.Tasks; namespace AsbCloudApp.Services { + /// + /// The параметры бурения service. + /// public interface IDrillParamsService : ICrudService { + /// + /// default параметры бурения + /// + /// The id well. + /// The start depth. + /// The end depth. + /// The token. + /// A Task. Task GetDefaultDrillParamsAsync(int idWell, double startDepth, double endDepth, CancellationToken token = default); + /// + /// Все за скважину + /// + /// The id well. + /// The token. + /// A Task. Task> GetAllAsync(int idWell, CancellationToken token = default); + /// + /// Все скважину по композитной скважине + /// + /// The id well. + /// The token. + /// A Task. Task> GetCompositeAllAsync(int idWell, CancellationToken token = default); + /// + /// Добавить + /// + /// The id well. + /// The dto. + /// The token. + /// A Task. Task InsertAsync(int idWell, DrillParamsDto dto, CancellationToken token = default); + /// + /// Добавить несколько + /// + /// The id well. + /// The dtos. + /// The token. + /// A Task. Task InsertRangeAsync(int idWell, IEnumerable dtos, CancellationToken token = default); + /// + /// Редактировать + /// + /// The id well. + /// The dto id. + /// The dto. + /// The token. + /// A Task. Task UpdateAsync(int idWell, int dtoId, DrillParamsDto dto, CancellationToken token = default); + + /// + /// Удалить старые и сохранить новые + /// + /// The id well. + /// The dtos. + /// The token. + /// A Task. Task SaveAsync(int idWell, IEnumerable dtos, CancellationToken token = default); } } diff --git a/AsbCloudApp/Services/ITelemetryService.cs b/AsbCloudApp/Services/ITelemetryService.cs index 144ae3ca..b177f383 100644 --- a/AsbCloudApp/Services/ITelemetryService.cs +++ b/AsbCloudApp/Services/ITelemetryService.cs @@ -26,6 +26,7 @@ namespace AsbCloudApp.Services /// /// старая (исходная) /// новая + /// /// Task MergeAsync(int from, int to, CancellationToken token); void SaveRequestDate(string uid, DateTimeOffset remoteDate); diff --git a/AsbCloudApp/Services/IWitsRepository.cs b/AsbCloudApp/Services/IWitsRepository.cs index dfda1320..17ae9d69 100644 --- a/AsbCloudApp/Services/IWitsRepository.cs +++ b/AsbCloudApp/Services/IWitsRepository.cs @@ -6,12 +6,45 @@ using System.Threading.Tasks; namespace AsbCloudApp.Services { + /// + /// The wits record repository. + /// public interface IWitsRecordRepository where TDto : ITelemetryData { + /// + /// Добавить новые данные + /// + /// The id telemetry. + /// The dtos. + /// The token. + /// A Task. Task SaveDataAsync(int idTelemetry, IEnumerable dtos, CancellationToken token); + + /// + /// Получить данные по телеметрии за период + /// + /// + /// + /// + /// + /// Task> GetAsync(int idTelemetry, DateTime begin, DateTime end, CancellationToken token); + + /// + /// получить массив из одной записи самой поздней по дате + /// + /// The id telemetry. + /// The token. + /// A Task. Task> GetLastAsync(int idTelemetry, CancellationToken token); + + /// + /// получить статистику по всему архиву: дата самой ранней записи, самой поздней и общее количество + /// + /// The id telemetry. + /// The token. + /// A Task. Task<(DateTime begin, DateTime end, int count)?> GetStatAsync(int idTelemetry, CancellationToken token); } } \ No newline at end of file diff --git a/ConsoleApp1/ConsoleApp1.csproj b/ConsoleApp1/ConsoleApp1.csproj index e0d86f92..173388d2 100644 --- a/ConsoleApp1/ConsoleApp1.csproj +++ b/ConsoleApp1/ConsoleApp1.csproj @@ -32,4 +32,9 @@ + + + + + diff --git a/ConsoleApp1/Properties/launchSettings.json b/ConsoleApp1/Properties/launchSettings.json deleted file mode 100644 index 33504c94..00000000 --- a/ConsoleApp1/Properties/launchSettings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "profiles": { - "WSL": { - "commandName": "WSL2", - "distributionName": "" - } - } -} \ No newline at end of file