forked from ddrilling/AsbCloudServer
Remove query datesRange from context.
Replace source for DatesRange from db to telemetry tracker.
This commit is contained in:
parent
a30c8883a5
commit
ca969c99ad
@ -35,5 +35,6 @@ namespace AsbCloudApp.Services
|
|||||||
Task<int> MergeAsync(int from, int to, CancellationToken token);
|
Task<int> MergeAsync(int from, int to, CancellationToken token);
|
||||||
|
|
||||||
void SaveRequestDate(string uid, DateTime remoteDate);
|
void SaveRequestDate(string uid, DateTime remoteDate);
|
||||||
|
Task<DatesRangeDto> GetDatesRangeAsync(int idWell, bool isUtc, CancellationToken token = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -467,27 +467,6 @@ namespace AsbCloudDb.Model
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<(DateTime From, DateTime To)> GetDatesRangeAsync<TEntity>(int idTelemetry,
|
|
||||||
CancellationToken token = default)
|
|
||||||
where TEntity : class, ITelemetryData
|
|
||||||
{
|
|
||||||
var dbSet = Set<TEntity>();
|
|
||||||
|
|
||||||
var datesRange = await (from m in dbSet
|
|
||||||
where m.IdTelemetry == idTelemetry
|
|
||||||
group m by m.IdTelemetry into g
|
|
||||||
select new
|
|
||||||
{
|
|
||||||
From = g.Min(d => d.Date),
|
|
||||||
To = g.Max(d => d.Date)
|
|
||||||
}).AsNoTracking().FirstOrDefaultAsync(token);
|
|
||||||
|
|
||||||
if (datesRange is null)
|
|
||||||
return (DateTime.MinValue, DateTime.MaxValue);
|
|
||||||
|
|
||||||
return (datesRange.From, datesRange.To);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IEnumerable<(double? MinDepth, double? MaxDepth, DateTime BeginPeriodDate)>> GetDepthToIntervalAsync(int telemetryId,
|
public async Task<IEnumerable<(double? MinDepth, double? MaxDepth, DateTime BeginPeriodDate)>> GetDepthToIntervalAsync(int telemetryId,
|
||||||
int intervalHoursTimestamp, int workStartTimestamp, double timezoneOffset, CancellationToken token)
|
int intervalHoursTimestamp, int workStartTimestamp, double timezoneOffset, CancellationToken token)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +50,6 @@ namespace AsbCloudDb.Model
|
|||||||
|
|
||||||
DbSet<TEntity> Set<TEntity>() where TEntity : class;
|
DbSet<TEntity> Set<TEntity>() where TEntity : class;
|
||||||
|
|
||||||
Task<(DateTime From, DateTime To)> GetDatesRangeAsync<T>(int idTelemetry, CancellationToken token) where T : class, ITelemetryData;
|
|
||||||
Task<IEnumerable<(double? MinDepth, double? MaxDepth, DateTime BeginPeriodDate)>> GetDepthToIntervalAsync(int telemetryId,
|
Task<IEnumerable<(double? MinDepth, double? MaxDepth, DateTime BeginPeriodDate)>> GetDepthToIntervalAsync(int telemetryId,
|
||||||
int intervalHoursTimestamp, int workStartTimestamp, double timezoneOffset, CancellationToken token);
|
int intervalHoursTimestamp, int workStartTimestamp, double timezoneOffset, CancellationToken token);
|
||||||
}
|
}
|
||||||
|
@ -144,26 +144,10 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<DatesRangeDto> GetMessagesDatesRangeAsync(int idWell, bool isUtc,
|
[Obsolete("Use telemetryService.GetDatesRangeAsync instead", false)]
|
||||||
|
public Task<DatesRangeDto> GetMessagesDatesRangeAsync(int idWell, bool isUtc,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
{
|
=> telemetryService.GetDatesRangeAsync(idWell, isUtc, token);
|
||||||
var telemetryId = telemetryService.GetIdTelemetryByIdWell(idWell);
|
|
||||||
if (telemetryId is null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
var (From, To) = await db.GetDatesRangeAsync<TelemetryMessage>((int)telemetryId, token)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
var result = new DatesRangeDto { From = From, To = To };
|
|
||||||
|
|
||||||
if (isUtc)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
result = await telemetryService.DatesRangeToTelemetryTimeZoneAsync((int)telemetryId, result, token)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Task InsertAsync(string uid, IEnumerable<TelemetryMessageDto> dtos,
|
public Task InsertAsync(string uid, IEnumerable<TelemetryMessageDto> dtos,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
|
@ -185,27 +185,10 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
return dtos;
|
return dtos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task<DatesRangeDto> GetDataDatesRangeAsync(int idWell, bool isUtc,
|
[Obsolete("Use telemetryService.GetDatesRangeAsync instead", false)]
|
||||||
|
public virtual Task<DatesRangeDto> GetDataDatesRangeAsync(int idWell, bool isUtc,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
{
|
=> telemetryService.GetDatesRangeAsync(idWell, isUtc, token);
|
||||||
var telemetryId = telemetryService.GetIdTelemetryByIdWell(idWell);
|
|
||||||
if (telemetryId is null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
var telemetry = await cacheTelemetry.FirstOrDefaultAsync(t => t.Id == telemetryId, token)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
var dto = telemetryService.TelemetryTracker.GetTelemetryDateRangeByUid(telemetry.RemoteUid);
|
|
||||||
|
|
||||||
if (isUtc)
|
|
||||||
return dto;
|
|
||||||
|
|
||||||
dto = await telemetryService.DatesRangeToTelemetryTimeZoneAsync((int)telemetryId, dto, token)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
return dto;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract TDto Convert(TModel src);
|
public abstract TDto Convert(TModel src);
|
||||||
|
|
||||||
|
@ -75,6 +75,30 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
return lastTelemetryDate;
|
return lastTelemetryDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual async Task<DatesRangeDto> GetDatesRangeAsync(
|
||||||
|
int idWell,
|
||||||
|
bool isUtc,
|
||||||
|
CancellationToken token = default)
|
||||||
|
{
|
||||||
|
var telemetryId = GetIdTelemetryByIdWell(idWell);
|
||||||
|
if (telemetryId is null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var telemetry = await cacheTelemetry.FirstOrDefaultAsync(t => t.Id == telemetryId, token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
var dto = TelemetryTracker.GetTelemetryDateRangeByUid(telemetry.RemoteUid);
|
||||||
|
|
||||||
|
if (isUtc)
|
||||||
|
return dto;
|
||||||
|
|
||||||
|
dto = await DatesRangeToTelemetryTimeZoneAsync((int)telemetryId, dto, token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
return dto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public int GetOrCreateTelemetryIdByUid(string uid)
|
public int GetOrCreateTelemetryIdByUid(string uid)
|
||||||
=> GetOrCreateTelemetryByUid(uid).Id;
|
=> GetOrCreateTelemetryByUid(uid).Id;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user