diff --git a/AsbCloudApp/Data/LimitingParameterDataDto.cs b/AsbCloudApp/Data/LimitingParameterDataDto.cs
index ee957947..83db213b 100644
--- a/AsbCloudApp/Data/LimitingParameterDataDto.cs
+++ b/AsbCloudApp/Data/LimitingParameterDataDto.cs
@@ -21,12 +21,12 @@ namespace AsbCloudApp.Data
///
/// Дата начала ограничения
///
- public DateTimeOffset DateStart { get; set; }
+ public DateTime DateStart { get; set; }
///
/// Дата окончания ограничения
///
- public DateTimeOffset DateEnd { get; set; }
+ public DateTime DateEnd { get; set; }
///
/// Глубина начала ограничения
diff --git a/AsbCloudApp/Repositories/ILimitingParameterRepository.cs b/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
index 507270ef..fcce0759 100644
--- a/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
+++ b/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
@@ -20,6 +20,7 @@ namespace AsbCloudApp.Repositories
///
///
Task> GetLimitingParametersAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token);
+ Task> GetLimitingParametersAsync(LimitingParameterRequest request, int idTelemetry, double timezoneHours, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs b/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
index 88c5f869..9c05d743 100644
--- a/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
+++ b/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
@@ -3,6 +3,7 @@ using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudDb.Model;
using Microsoft.EntityFrameworkCore;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
@@ -19,41 +20,49 @@ namespace AsbCloudInfrastructure.Repository
{
this.context = context;
}
+
public async Task> GetLimitingParametersAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token)
{
- var query = BuildQuery(request, wellDto);
+ var timezoneOffset = wellDto.Timezone.Hours;
+ var IdTelemetry = wellDto.IdTelemetry!.Value;
+ return await GetLimitingParametersAsync(request, IdTelemetry, timezoneOffset, token);
+ }
+
+ public async Task> GetLimitingParametersAsync(LimitingParameterRequest request, int idTelemetry, double timezoneHours, CancellationToken token)
+ {
+ var timezoneSpan = TimeSpan.FromHours(timezoneHours);
+ var query = BuildQuery(request, idTelemetry, timezoneHours);
var data = (await query.ToListAsync(token))
.Select(x => new LimitingParameterDataDto
{
- IdWell = wellDto.Id,
+ IdWell = request.IdWell,
IdTelemetry = x.IdTelemetry,
IdFeedRegulator = x.IdFeedRegulator,
- DateStart = x.DateStart,
- DateEnd = x.DateEnd,
+ DateStart = DateTime.SpecifyKind(x.DateStart.UtcDateTime + timezoneSpan, DateTimeKind.Unspecified),
+ DateEnd = DateTime.SpecifyKind(x.DateEnd.UtcDateTime + timezoneSpan, DateTimeKind.Unspecified),
DepthStart = x.DepthStart,
DepthEnd = x.DepthEnd
});
-
return data;
}
- private IQueryable BuildQuery(LimitingParameterRequest request, WellDto wellDto)
+ private IQueryable BuildQuery(LimitingParameterRequest request, int idTelemetry, double timezoneHours)
{
var query = context.LimitingParameter
.OrderBy(x => x.Id)
- .Where(x => x.IdTelemetry == wellDto.IdTelemetry)
+ .Where(x => x.IdTelemetry == idTelemetry)
.AsNoTracking();
if (request.GtDate.HasValue)
{
- var gtDate = request.GtDate.Value.ToUtcDateTimeOffset(wellDto.Timezone.Hours);
+ var gtDate = request.GtDate.Value.ToUtcDateTimeOffset(timezoneHours);
query = query.Where(x => x.DateEnd >= gtDate);
}
if (request.LtDate.HasValue)
{
- var ltDate = request.LtDate.Value.ToUtcDateTimeOffset(wellDto.Timezone.Hours);
+ var ltDate = request.LtDate.Value.ToUtcDateTimeOffset(timezoneHours);
query = query.Where(x => x.DateStart <= ltDate);
}
diff --git a/AsbCloudInfrastructure/Services/LimitingParameterService.cs b/AsbCloudInfrastructure/Services/LimitingParameterService.cs
index 0a609507..848fbdf2 100644
--- a/AsbCloudInfrastructure/Services/LimitingParameterService.cs
+++ b/AsbCloudInfrastructure/Services/LimitingParameterService.cs
@@ -40,7 +40,6 @@ namespace AsbCloudInfrastructure.Services
var data = (await limitingParameterRepository.GetLimitingParametersAsync(request, well, token))
.GroupBy(x => x.IdFeedRegulator);
-
List result = new List(data.Count());
foreach (var item in data)
{
@@ -107,7 +106,7 @@ namespace AsbCloudInfrastructure.Services
return (float)result;
}
- private DateTimeOffset GetDate(double depth, LimitingParameterDataDto dto)
+ private DateTime GetDate(double depth, LimitingParameterDataDto dto)
{
var a = depth - dto.DepthStart;
var b = dto.DepthEnd - dto.DepthStart;