From b9bbb06584924c762d7474bacf97b31cda4f033a Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Fri, 2 Feb 2024 12:14:25 +0500 Subject: [PATCH] draft 3 --- .../PeriodicWorks/WorkDataSaubStat.cs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs b/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs index 69e510f9..3b3c25df 100644 --- a/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs +++ b/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs @@ -40,20 +40,19 @@ namespace AsbCloudInfrastructure.Background.PeriodicWorks if (!idTelemetries.Any()) return; - var statsQuery = await db.Set() + var stats = await db.Set() .Where(s => idTelemetries.Contains(s.IdTelemetry)) - .ToArrayAsync(token); - - var stats = statsQuery .GroupBy(s => s.IdTelemetry) - .ToDictionary( - g => g.Key, - g => g.OrderByDescending(s => s.DateEnd).First() - ); + .Select(g => new + { + IdTelemetry = g.Key, + DateEnd = g.Max(s => s.DateEnd), + }) + .ToArrayAsync(token); foreach ( var idTelemetry in idTelemetries) { - var lastDate = stats.GetValueOrDefault(idTelemetry)?.DateEnd ?? DateTimeOffset.UnixEpoch; + var lastDate = stats.FirstOrDefault(s=>s.IdTelemetry == idTelemetry)?.DateEnd ?? DateTimeOffset.UnixEpoch; await CreateStatForTelemetryFromDate(db, idTelemetry, lastDate, token); } }