diff --git a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
index 07e41895..605d844c 100644
--- a/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
+++ b/AsbCloudApp/Services/Subsystems/ISubsystemOperationTimeService.cs
@@ -36,7 +36,15 @@ namespace AsbCloudApp.Services.Subsystems
///
///
///
- Task?> GetOperationTimeAsync(SubsystemOperationTimeRequest request, CancellationToken token);
+ Task?> GetOperationTimeAsync(SubsystemOperationTimeRequest request, CancellationToken token);
+
+ ///
+ /// Временной диапазон за который есть статистика работы подсистем
+ ///
+ ///
+ ///
+ ///
+ Task?> GetDateRangeOperationTimeAsync(int idSubsystem, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
index 1961c74f..5b0fdbb1 100644
--- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
+++ b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeService.cs
@@ -185,9 +185,9 @@ namespace AsbCloudInfrastructure.Services.Subsystems
}
- private (DateTimeOffset, DateTimeOffset) GetDateRangeOperationTime(int idSubsystem)
+ private async Task<(DateTimeOffset, DateTimeOffset)?> GetDateRangeOperationTime(int idSubsystem, CancellationToken token)
{
- var dateRange = db.SubsystemOperationTimes
+ var dateRange = await db.SubsystemOperationTimes
.Where(o => o.Id == idSubsystem)
.GroupBy(o => o.IdSubsystem)
.Select(g => new
@@ -195,7 +195,11 @@ namespace AsbCloudInfrastructure.Services.Subsystems
DateFirst = g.Min(o => o.DateStart),
DateLast = g.Max(o => o.DateEnd)
})
- .FirstOrDefault();
+ .FirstOrDefaultAsync(token);
+ if (dateRange == null)
+ {
+ return null;
+ }
(DateTimeOffset dateFirst, DateTimeOffset dateLast) result = (dateRange.DateFirst, dateRange.DateLast);
return result;
}