diff --git a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs index 022532f2..57b36ef2 100644 --- a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs +++ b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs @@ -12,6 +12,7 @@ using System.Diagnostics; using System.Linq; using System.Threading; using System.Threading.Tasks; +using AsbCloudApp.Exceptions; using AsbCloudApp.Requests; using Mapster; @@ -19,7 +20,7 @@ namespace AsbCloudInfrastructure.Repository { public class GtrWitsRepository : IGtrRepository { - private static IDictionary<(int, int), string> WitsParameters = new Dictionary<(int, int), string> + private static IDictionary<(int IdRecord, int IdItem), string> WitsParameters = new Dictionary<(int, int), string> { { (1, 8), nameof(GtrWitsDto.DEPTBITM) }, { (1, 10), nameof(GtrWitsDto.DEPTMEAS) }, @@ -90,8 +91,10 @@ namespace AsbCloudInfrastructure.Repository if (telemetry is null) return Enumerable.Empty(); - var timezone = telemetryService.GetTimezone(telemetry.Id); - var timezoneOffset = TimeSpan.FromHours(timezone.Hours); + if (telemetry.TimeZone is null) + throw new ArgumentInvalidException(nameof(idWell),$"Telemetry id: {telemetry.Id} can't find timezone"); + + var timezoneOffset = TimeSpan.FromHours(telemetry.TimeZone.Hours); var query = BuildQuery(telemetry.Id, request); @@ -100,7 +103,10 @@ namespace AsbCloudInfrastructure.Repository var interval = TimeSpan.FromSeconds(10); + var idsRecord = WitsParameters.Select(p => p.Key.IdRecord); + var entities = await query + .Where(e => idsRecord.Contains(e.IdRecord)) .OrderBy(e => e.DateTime) .AsNoTracking() .ToArrayAsync(token);