From 38521940a68abd4f361feb585c38cebe5072e7d2 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 29 Mar 2024 08:49:26 +0500 Subject: [PATCH 1/4] DetectedOperationService temporary fix timezone problem --- .../DetectOperations/DetectedOperationService.cs | 4 +++- .../Services/SAUB/TelemetryDataSaubService.cs | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index 63391899..c6bca518 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; @@ -142,7 +143,7 @@ public class DetectedOperationService : IDetectedOperationService const int minOperationLength = 5; const int maxDetectorsInterpolationFrameLength = 30; const int gap = maxDetectorsInterpolationFrameLength + minOperationLength; - var timeIncrement = TimeSpan.FromSeconds(1); + //var timezone = telemetryService.GetTimezone(idTelemetry); while (true) { @@ -155,6 +156,7 @@ public class DetectedOperationService : IDetectedOperationService var detectableTelemetries = (await telemetryDataSaubService.GetByTelemetryAsync(idTelemetry, request, token)) .Where(t => t.BlockPosition >= 0) + .Select(t => t as TelemetryNewDataSaubDto) .Select(t => new DetectableTelemetry { DateTime = t.DateTime,//TODO: <-- вот тут ошибка при присвоении DateTime с kind unspecified в DateTimeOffset времени назначается локальный часовой пояс. 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; From 116cf4e3b0fb26b16e234b1fe7ef3c088329d889 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 29 Mar 2024 08:50:17 +0500 Subject: [PATCH 2/4] DetectedOperationService temporary fix timezone problem 2 --- .../Services/DetectOperations/DetectedOperationService.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index c6bca518..6bf0cdf5 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -143,7 +143,6 @@ public class DetectedOperationService : IDetectedOperationService const int minOperationLength = 5; const int maxDetectorsInterpolationFrameLength = 30; const int gap = maxDetectorsInterpolationFrameLength + minOperationLength; - //var timezone = telemetryService.GetTimezone(idTelemetry); while (true) { @@ -159,7 +158,7 @@ public class DetectedOperationService : IDetectedOperationService .Select(t => t as TelemetryNewDataSaubDto) .Select(t => new DetectableTelemetry { - DateTime = t.DateTime,//TODO: <-- вот тут ошибка при присвоении DateTime с kind unspecified в DateTimeOffset времени назначается локальный часовой пояс. + DateTime = t.DateTime, IdUser = t.IdUser, Mode = t.Mode, WellDepth = t.WellDepth, From 4d8a3798a08c2c38f1737bbd70a6f61d5c0c7f3a Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 29 Mar 2024 09:03:10 +0500 Subject: [PATCH 3/4] DetectedOperationService temporary fix timezone problem 3 --- .../Services/DetectOperations/DetectedOperationService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs index 6bf0cdf5..36809ec3 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs @@ -156,6 +156,7 @@ 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, From b1fc181477cf433da04df555fd2942d267aec730 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 29 Mar 2024 16:57:49 +0500 Subject: [PATCH 4/4] Fix validation DataSaubStatRequest --- AsbCloudApp/Requests/DataSaubStatRequest.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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; ///