diff --git a/AsbCloudApp/Requests/DataSaubStatRequest.cs b/AsbCloudApp/Requests/DataSaubStatRequest.cs index b4400f3e..a9bcbf7d 100644 --- a/AsbCloudApp/Requests/DataSaubStatRequest.cs +++ b/AsbCloudApp/Requests/DataSaubStatRequest.cs @@ -9,23 +9,23 @@ namespace AsbCloudApp.Requests { /// /// Изменение уставки факт перепада давления от первого значения в начале интервала - /// Не менее 5 атм и не более 15(50) атм; + /// Не менее 5 атм и не более 50 атм; /// - [Range(5, 15, ErrorMessage = "Изменение уставки факт перепада давления не может быть меньше 5 и больше 15 атм")] + [Range(5, 50, ErrorMessage = "Изменение уставки факт перепада давления не может быть меньше 5 и больше 50 атм")] public double DeltaPressure { get; set; } = 5d; /// /// Изменение уставки факт осевой нагрузки от первого значения в начале интервала - /// Не менее 1 т и не более 5(20) т; + /// Не менее 1 т и не более 20 т; /// - [Range(1, 5, ErrorMessage = "Изменение уставки факт осевой нагрузки не может быть меньше 1 и больше 5 т")] + [Range(1, 20, ErrorMessage = "Изменение уставки факт осевой нагрузки не может быть меньше 1 и больше 20 т")] public double DeltaAxialLoad { get; set; } = 1d; /// /// Изменение уставки момента от первого значения в начале интервала - /// Не менее 5 кН*м и не более 10(20) кН*м. + /// Не менее 5 кН*м и не более 20 кН*м. /// - [Range(5, 10, ErrorMessage = "Изменение уставки момента не может быть меньше 5 и больше 10 кН*м")] + [Range(5, 20, ErrorMessage = "Изменение уставки момента не может быть меньше 5 и больше 20 кН*м")] public double DeltaRotorTorque { get; set; } = 5d; /// diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index 501d9cb4..856848c1 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -11,6 +11,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; using AsbCloudInfrastructure.Services.DetectOperations.Detectors; +using AsbCloudInfrastructure.Services.SAUB; namespace AsbCloudInfrastructure.Services.DetectOperations; @@ -143,7 +144,6 @@ public class DetectedOperationService : IDetectedOperationService const int minOperationLength = 5; const int maxDetectorsInterpolationFrameLength = 30; const int gap = maxDetectorsInterpolationFrameLength + minOperationLength; - var timeIncrement = TimeSpan.FromSeconds(1); while (true) { @@ -156,9 +156,11 @@ public class DetectedOperationService : IDetectedOperationService var detectableTelemetries = (await telemetryDataSaubService.GetByTelemetryAsync(idTelemetry, request, token)) .Where(t => t.BlockPosition >= 0) + .Select(t => t as TelemetryNewDataSaubDto) + .Where (t => t is not null) .Select(t => new DetectableTelemetry { - DateTime = t.DateTime,//TODO: <-- вот тут ошибка при присвоении DateTime с kind unspecified в DateTimeOffset времени назначается локальный часовой пояс. + DateTime = t.DateTime, IdUser = t.IdUser, Mode = t.Mode, WellDepth = t.WellDepth, diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs index 92db8e4d..e6fb372b 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs @@ -16,6 +16,11 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services.SAUB; +class TelemetryNewDataSaubDto : TelemetryDataSaubDto +{ + public new DateTimeOffset DateTime { get; set; } +} + public class TelemetryDataSaubService : TelemetryDataBaseService, ITelemetryDataSaubService { private readonly ITelemetryUserService telemetryUserService; @@ -124,10 +129,10 @@ public class TelemetryDataSaubService : TelemetryDataBaseService(); + var dto = src.Adapt(); var telemetryUser = telemetryUserService.GetOrDefault(src.IdTelemetry, src.IdUser ?? int.MinValue); dto.User = telemetryUser?.MakeDisplayName(); - dto.DateTime = src.DateTime.ToRemoteDateTime(timezoneOffset); + dto.DateTime = src.DateTime.ToOffset(TimeSpan.FromHours(timezoneOffset)); // src.DateTime.ToRemoteDateTime(timezoneOffset); dto.BitDepth = src.BitDepth <= src.WellDepth ? src.BitDepth : src.WellDepth;