Replace TelemetryService.GetOrDefaultIdTelemetryByIdWell() by GetOrDefaultTelemetryByIdWell()

This commit is contained in:
ngfrolov 2023-03-07 09:12:49 +05:00
parent 1ca72d50d1
commit 43847298d8
Signed by: ng.frolov
GPG Key ID: E99907A0357B29A7
9 changed files with 38 additions and 31 deletions

View File

@ -54,7 +54,7 @@ namespace AsbCloudApp.Services
/// </summary> /// </summary>
/// <param name="idWell"></param> /// <param name="idWell"></param>
/// <returns></returns> /// <returns></returns>
int? GetOrDefaultIdTelemetryByIdWell(int idWell); TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell);
/// <summary> /// <summary>
/// получить диапазон дат за которые есть данные /// получить диапазон дат за которые есть данные

View File

@ -55,12 +55,12 @@ namespace AsbCloudInfrastructure.Repository
private async Task<TelemetryWirelineRunOutDto?> GetOrDefaultAsync(WellDto well, CancellationToken token) private async Task<TelemetryWirelineRunOutDto?> GetOrDefaultAsync(WellDto well, CancellationToken token)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(well.Id); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(well.Id);
if (idTelemetry is null) if (telemetry is null)
return null; return null;
var entity = await context.TelemetryWirelineRunOut var entity = await context.TelemetryWirelineRunOut
.Where(x => x.IdTelemetry == idTelemetry) .Where(x => x.IdTelemetry == telemetry.Id)
.AsNoTracking() .AsNoTracking()
.FirstOrDefaultAsync(token) .FirstOrDefaultAsync(token)
.ConfigureAwait(false); .ConfigureAwait(false);

View File

@ -138,7 +138,7 @@ namespace AsbCloudInfrastructure.Services.ProcessMap
dto.DateStart = GetInterpolatedDate(firstIntervalOperation, depthInterval.min); dto.DateStart = GetInterpolatedDate(firstIntervalOperation, depthInterval.min);
dto.IdWell = firstIntervalOperation.IdWell; dto.IdWell = firstIntervalOperation.IdWell;
dto.IdWellSectionType = firstIntervalOperation.IdWellSectionType; dto.IdWellSectionType = firstIntervalOperation.IdWellSectionType;
dto.WellSectionTypeName = firstIntervalOperation.WellSectionTypeName; dto.WellSectionTypeName = firstIntervalOperation.WellSectionTypeName ?? string.Empty;
dto.MechDrillingHours = CalcHours(depthInterval, intervalOperations); dto.MechDrillingHours = CalcHours(depthInterval, intervalOperations);
} }

View File

@ -116,10 +116,10 @@ namespace AsbCloudInfrastructure.Services
public DatesRangeDto? GetDatesRangeOrDefault(int idWell) public DatesRangeDto? GetDatesRangeOrDefault(int idWell)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
if (idTelemetry is null) if (telemetry is null)
return null; return null;
var range = telemetryService.GetDatesRange((int)idTelemetry); var range = telemetryService.GetDatesRange(telemetry.Id);
return range; return range;
} }

View File

@ -37,17 +37,17 @@ namespace AsbCloudInfrastructure.Services.SAUB
Take = request.Take ?? 32, Take = request.Take ?? 32,
}; };
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(request.IdWell); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(request.IdWell);
if (idTelemetry is null) if (telemetry is null)
return result; return result;
var allEvents = await memoryCache.GetOrCreateBasicAsync(db.Set<TelemetryEvent>(), token); var allEvents = await memoryCache.GetOrCreateBasicAsync(db.Set<TelemetryEvent>(), token);
var events = allEvents.Where(e => e.IdTelemetry == idTelemetry); var events = allEvents.Where(e => e.IdTelemetry == telemetry.Id);
if (!events.Any()) if (!events.Any())
return result; return result;
var query = db.TelemetryMessages.Where(m => m.IdTelemetry == idTelemetry) var query = db.TelemetryMessages.Where(m => m.IdTelemetry == telemetry.Id)
.OrderBy(m => m.DateTime).AsNoTracking(); .OrderBy(m => m.DateTime).AsNoTracking();
if (request.Categoryids?.Any() == true || !string.IsNullOrEmpty(request.SearchString)) if (request.Categoryids?.Any() == true || !string.IsNullOrEmpty(request.SearchString))
@ -68,7 +68,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
query = query.OrderByDescending(m => m.DateTime); query = query.OrderByDescending(m => m.DateTime);
var timezone = telemetryService.GetTimezone(idTelemetry ?? default); var timezone = telemetryService.GetTimezone(telemetry.Id);
if (request.Begin is not null) if (request.Begin is not null)
{ {
@ -96,7 +96,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
return result; return result;
var allUsers = await memoryCache.GetOrCreateBasicAsync(db.Set<TelemetryUser>(), token); var allUsers = await memoryCache.GetOrCreateBasicAsync(db.Set<TelemetryUser>(), token);
var users = allUsers.Where(u => u.IdTelemetry == idTelemetry); var users = allUsers.Where(u => u.IdTelemetry == telemetry.Id);
var eventsDict = events.ToDictionary(x=>x.IdEvent, x => x); var eventsDict = events.ToDictionary(x=>x.IdEvent, x => x);
var usersDict = users.ToDictionary(x => x.IdUser, x => x); var usersDict = users.ToDictionary(x => x.IdUser, x => x);

View File

@ -93,17 +93,17 @@ namespace AsbCloudInfrastructure.Services.SAUB
DateTime dateBegin = default, double intervalSec = 600d, DateTime dateBegin = default, double intervalSec = 600d,
int approxPointsCount = 1024, CancellationToken token = default) int approxPointsCount = 1024, CancellationToken token = default)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell) ?? -1; var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
if (idTelemetry == -1) if (telemetry is null)
return null; return null;
var timezone = telemetryService.GetTimezone(idTelemetry); var timezone = telemetryService.GetTimezone(telemetry.Id);
var filterByDateEnd = dateBegin != default; var filterByDateEnd = dateBegin != default;
DateTimeOffset dateBeginUtc; DateTimeOffset dateBeginUtc;
if (dateBegin == default) if (dateBegin == default)
{ {
dateBeginUtc = telemetryService.GetLastTelemetryDate(idTelemetry) dateBeginUtc = telemetryService.GetLastTelemetryDate(telemetry.Id)
.ToUtcDateTimeOffset(timezone.Hours); .ToUtcDateTimeOffset(timezone.Hours);
if (dateBeginUtc != default) if (dateBeginUtc != default)
dateBeginUtc = dateBeginUtc.AddSeconds(-intervalSec); dateBeginUtc = dateBeginUtc.AddSeconds(-intervalSec);
@ -116,7 +116,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
if (dateBeginUtc == default) if (dateBeginUtc == default)
dateBeginUtc = DateTime.UtcNow.AddSeconds(-intervalSec); dateBeginUtc = DateTime.UtcNow.AddSeconds(-intervalSec);
var cacheData = telemetryDataCache.GetOrDefault(idTelemetry, dateBeginUtc.ToRemoteDateTime(timezone.Hours), intervalSec, approxPointsCount); var cacheData = telemetryDataCache.GetOrDefault(telemetry.Id, dateBeginUtc.ToRemoteDateTime(timezone.Hours), intervalSec, approxPointsCount);
if (cacheData is not null) if (cacheData is not null)
return cacheData; return cacheData;
@ -124,7 +124,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
var dbSet = db.Set<TEntity>(); var dbSet = db.Set<TEntity>();
var query = dbSet var query = dbSet
.Where(d => d.IdTelemetry == idTelemetry .Where(d => d.IdTelemetry == telemetry.Id
&& d.DateTime >= dateBeginUtc); && d.DateTime >= dateBeginUtc);
if (filterByDateEnd) if (filterByDateEnd)

View File

@ -5,6 +5,7 @@ using Mapster;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -97,6 +98,12 @@ namespace AsbCloudInfrastructure.Services.SAUB
: src.WellDepth; : src.WellDepth;
return dto; return dto;
} }
public Stream GetZippedCsv(int idWell, DateTime beginDate, DateTime endDate)
{
var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
return null;
}
} }
#nullable disable #nullable disable
} }

View File

@ -138,11 +138,11 @@ namespace AsbCloudInfrastructure.Services.SAUB
throw new Exception($"Telemetry id: {idTelemetry} can't find timezone."); throw new Exception($"Telemetry id: {idTelemetry} can't find timezone.");
} }
public int? GetOrDefaultIdTelemetryByIdWell(int idWell) public TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell)
{ {
var telemetry = GetTelemetryCache() var telemetry = GetTelemetryCache()
.FirstOrDefault(t => t.Well?.Id == idWell); .FirstOrDefault(t => t.Well?.Id == idWell);
return telemetry?.Id; return telemetry?.Adapt<TelemetryBaseDto>();
} }
private Well? GetWellByTelemetryUid(string uid) private Well? GetWellByTelemetryUid(string uid)

View File

@ -72,10 +72,10 @@ namespace AsbCloudWebApi.Controllers.WITS
[FromServices] IWitsRecordRepository<TDto> witsRecordRepository, [FromServices] IWitsRecordRepository<TDto> witsRecordRepository,
CancellationToken token) CancellationToken token)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
if (idTelemetry is null) if (telemetry is null)
return NoContent(); return NoContent();
var dtos = await witsRecordRepository.GetLastAsync((int)idTelemetry, token); var dtos = await witsRecordRepository.GetLastAsync(telemetry.Id, token);
return Ok(dtos); return Ok(dtos);
} }
@ -96,10 +96,10 @@ namespace AsbCloudWebApi.Controllers.WITS
[FromServices] IWitsRecordRepository<TDto> witsRecordRepository, [FromServices] IWitsRecordRepository<TDto> witsRecordRepository,
CancellationToken token) CancellationToken token)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
if (idTelemetry is null) if (telemetry is null)
return NoContent(); return NoContent();
var dtos = await witsRecordRepository.GetAsync((int)idTelemetry, begin, end, token); var dtos = await witsRecordRepository.GetAsync(telemetry.Id, begin, end, token);
return Ok(dtos); return Ok(dtos);
} }
@ -118,10 +118,10 @@ namespace AsbCloudWebApi.Controllers.WITS
[FromServices] IWitsRecordRepository<TDto> witsRecordRepository, [FromServices] IWitsRecordRepository<TDto> witsRecordRepository,
CancellationToken token) CancellationToken token)
{ {
var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
if (idTelemetry is null) if (telemetry is null)
return NoContent(); return NoContent();
var dtos = await witsRecordRepository.GetStatAsync((int)idTelemetry, token); var dtos = await witsRecordRepository.GetStatAsync(telemetry.Id, token);
return Ok(dtos); return Ok(dtos);
} }
} }