From 615771395d815e04eea233ad5ab3bf74044f29ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Wed, 21 Feb 2024 07:29:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20WorkOperationDetection=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=D1=81=D1=8F=20=D0=BE=D1=82?= =?UTF-8?q?=20=D0=B4=D0=B2=D1=83=D1=85=20=D1=86=D0=B8=D0=BA=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B2=D0=BD=D1=83=D1=82=D1=80=D0=B8=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=B0=20Action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkOperationDetection.cs | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs index 9b011970..f562e744 100644 --- a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs +++ b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading; @@ -34,31 +33,19 @@ public class WorkOperationDetection: Work var detectedOperationService = services.GetRequiredService(); var telemetryIds = (await telemetryRepository.GetAllAsync(token)) - .Select(t => t.Id); + .Select(t => t.Id) + .ToArray(); var lastDetectedDates = await detectedOperationRepository.GetLastDetectedDatesAsync(token); - var beginDatesDetectOperations = new List<(int TelemetryId, DateTimeOffset? BeginDate)>(); - - foreach (var telemetryId in telemetryIds) + for (var i = 0; i < telemetryIds.Length; i++) { - if (lastDetectedDates.TryGetValue(telemetryId, out var beginDate)) - { - beginDatesDetectOperations.Add((telemetryId, beginDate)); - continue; - } + var telemetryId = telemetryIds[i]; - beginDatesDetectOperations.Add((telemetryId, null)); - } - - var count = beginDatesDetectOperations.Count; - - for (var i = 0; i < count; i++) - { - var (idTelemetry, beginDate) = beginDatesDetectOperations[i]; + var beginDate = lastDetectedDates.TryGetValue(telemetryId, out var date) ? date : (DateTimeOffset?)null; - onProgressCallback($"Start detecting telemetry: {idTelemetry} from {beginDate}", i++ / count); - var detectedOperations = await detectedOperationService.DetectOperationsAsync(idTelemetry, beginDate, token); + onProgressCallback($"Start detecting telemetry: {telemetryId} from {beginDate}", i++ / telemetryIds.Length); + var detectedOperations = await detectedOperationService.DetectOperationsAsync(telemetryId, beginDate, token); if (detectedOperations.Any()) await detectedOperationRepository.InsertRangeAsync(detectedOperations, token);