From 43847298d8d5a9f2dc394d387590ec09061a81be Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Tue, 7 Mar 2023 09:12:49 +0500 Subject: [PATCH] Replace TelemetryService.GetOrDefaultIdTelemetryByIdWell() by GetOrDefaultTelemetryByIdWell() --- AsbCloudApp/Services/ITelemetryService.cs | 2 +- .../TelemetryWirelineRunOutRepository.cs | 6 +++--- .../Services/ProcessMap/ProcessMapService.cs | 2 +- .../Services/ReportService.cs | 6 +++--- .../Services/SAUB/MessageService.cs | 12 ++++++------ .../Services/SAUB/TelemetryDataBaseService.cs | 12 ++++++------ .../Services/SAUB/TelemetryDataSaubService.cs | 7 +++++++ .../Services/SAUB/TelemetryService.cs | 4 ++-- .../Controllers/WITS/WitsControllerAbstract.cs | 18 +++++++++--------- 9 files changed, 38 insertions(+), 31 deletions(-) diff --git a/AsbCloudApp/Services/ITelemetryService.cs b/AsbCloudApp/Services/ITelemetryService.cs index b7f81c32..2e6592b4 100644 --- a/AsbCloudApp/Services/ITelemetryService.cs +++ b/AsbCloudApp/Services/ITelemetryService.cs @@ -54,7 +54,7 @@ namespace AsbCloudApp.Services /// /// /// - int? GetOrDefaultIdTelemetryByIdWell(int idWell); + TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell); /// /// получить диапазон дат за которые есть данные diff --git a/AsbCloudInfrastructure/Repository/TelemetryWirelineRunOutRepository.cs b/AsbCloudInfrastructure/Repository/TelemetryWirelineRunOutRepository.cs index 9662d342..b99f5a41 100644 --- a/AsbCloudInfrastructure/Repository/TelemetryWirelineRunOutRepository.cs +++ b/AsbCloudInfrastructure/Repository/TelemetryWirelineRunOutRepository.cs @@ -55,12 +55,12 @@ namespace AsbCloudInfrastructure.Repository private async Task GetOrDefaultAsync(WellDto well, CancellationToken token) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(well.Id); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(well.Id); + if (telemetry is null) return null; var entity = await context.TelemetryWirelineRunOut - .Where(x => x.IdTelemetry == idTelemetry) + .Where(x => x.IdTelemetry == telemetry.Id) .AsNoTracking() .FirstOrDefaultAsync(token) .ConfigureAwait(false); diff --git a/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs b/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs index 0ede2e82..0c1769c7 100644 --- a/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs +++ b/AsbCloudInfrastructure/Services/ProcessMap/ProcessMapService.cs @@ -138,7 +138,7 @@ namespace AsbCloudInfrastructure.Services.ProcessMap dto.DateStart = GetInterpolatedDate(firstIntervalOperation, depthInterval.min); dto.IdWell = firstIntervalOperation.IdWell; dto.IdWellSectionType = firstIntervalOperation.IdWellSectionType; - dto.WellSectionTypeName = firstIntervalOperation.WellSectionTypeName; + dto.WellSectionTypeName = firstIntervalOperation.WellSectionTypeName ?? string.Empty; dto.MechDrillingHours = CalcHours(depthInterval, intervalOperations); } diff --git a/AsbCloudInfrastructure/Services/ReportService.cs b/AsbCloudInfrastructure/Services/ReportService.cs index c46d4682..beae8aad 100644 --- a/AsbCloudInfrastructure/Services/ReportService.cs +++ b/AsbCloudInfrastructure/Services/ReportService.cs @@ -116,10 +116,10 @@ namespace AsbCloudInfrastructure.Services public DatesRangeDto? GetDatesRangeOrDefault(int idWell) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + if (telemetry is null) return null; - var range = telemetryService.GetDatesRange((int)idTelemetry); + var range = telemetryService.GetDatesRange(telemetry.Id); return range; } diff --git a/AsbCloudInfrastructure/Services/SAUB/MessageService.cs b/AsbCloudInfrastructure/Services/SAUB/MessageService.cs index 7f63f65c..3209d20c 100644 --- a/AsbCloudInfrastructure/Services/SAUB/MessageService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/MessageService.cs @@ -37,17 +37,17 @@ namespace AsbCloudInfrastructure.Services.SAUB Take = request.Take ?? 32, }; - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(request.IdWell); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(request.IdWell); + if (telemetry is null) return result; var allEvents = await memoryCache.GetOrCreateBasicAsync(db.Set(), token); - var events = allEvents.Where(e => e.IdTelemetry == idTelemetry); + var events = allEvents.Where(e => e.IdTelemetry == telemetry.Id); if (!events.Any()) 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(); if (request.Categoryids?.Any() == true || !string.IsNullOrEmpty(request.SearchString)) @@ -68,7 +68,7 @@ namespace AsbCloudInfrastructure.Services.SAUB query = query.OrderByDescending(m => m.DateTime); - var timezone = telemetryService.GetTimezone(idTelemetry ?? default); + var timezone = telemetryService.GetTimezone(telemetry.Id); if (request.Begin is not null) { @@ -96,7 +96,7 @@ namespace AsbCloudInfrastructure.Services.SAUB return result; var allUsers = await memoryCache.GetOrCreateBasicAsync(db.Set(), 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 usersDict = users.ToDictionary(x => x.IdUser, x => x); diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataBaseService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataBaseService.cs index d8f7736c..6da87bc3 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataBaseService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataBaseService.cs @@ -93,17 +93,17 @@ namespace AsbCloudInfrastructure.Services.SAUB DateTime dateBegin = default, double intervalSec = 600d, int approxPointsCount = 1024, CancellationToken token = default) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell) ?? -1; - if (idTelemetry == -1) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + if (telemetry is null) return null; - var timezone = telemetryService.GetTimezone(idTelemetry); + var timezone = telemetryService.GetTimezone(telemetry.Id); var filterByDateEnd = dateBegin != default; DateTimeOffset dateBeginUtc; if (dateBegin == default) { - dateBeginUtc = telemetryService.GetLastTelemetryDate(idTelemetry) + dateBeginUtc = telemetryService.GetLastTelemetryDate(telemetry.Id) .ToUtcDateTimeOffset(timezone.Hours); if (dateBeginUtc != default) dateBeginUtc = dateBeginUtc.AddSeconds(-intervalSec); @@ -116,7 +116,7 @@ namespace AsbCloudInfrastructure.Services.SAUB if (dateBeginUtc == default) 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) return cacheData; @@ -124,7 +124,7 @@ namespace AsbCloudInfrastructure.Services.SAUB var dbSet = db.Set(); var query = dbSet - .Where(d => d.IdTelemetry == idTelemetry + .Where(d => d.IdTelemetry == telemetry.Id && d.DateTime >= dateBeginUtc); if (filterByDateEnd) diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs index ac70cb3b..33899211 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryDataSaubService.cs @@ -5,6 +5,7 @@ using Mapster; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -97,6 +98,12 @@ namespace AsbCloudInfrastructure.Services.SAUB : src.WellDepth; return dto; } + + public Stream GetZippedCsv(int idWell, DateTime beginDate, DateTime endDate) + { + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + return null; + } } #nullable disable } diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryService.cs index 1c4c7e5b..3735541f 100644 --- a/AsbCloudInfrastructure/Services/SAUB/TelemetryService.cs +++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryService.cs @@ -138,11 +138,11 @@ namespace AsbCloudInfrastructure.Services.SAUB throw new Exception($"Telemetry id: {idTelemetry} can't find timezone."); } - public int? GetOrDefaultIdTelemetryByIdWell(int idWell) + public TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell) { var telemetry = GetTelemetryCache() .FirstOrDefault(t => t.Well?.Id == idWell); - return telemetry?.Id; + return telemetry?.Adapt(); } private Well? GetWellByTelemetryUid(string uid) diff --git a/AsbCloudWebApi/Controllers/WITS/WitsControllerAbstract.cs b/AsbCloudWebApi/Controllers/WITS/WitsControllerAbstract.cs index f95512ab..778ee67b 100644 --- a/AsbCloudWebApi/Controllers/WITS/WitsControllerAbstract.cs +++ b/AsbCloudWebApi/Controllers/WITS/WitsControllerAbstract.cs @@ -72,10 +72,10 @@ namespace AsbCloudWebApi.Controllers.WITS [FromServices] IWitsRecordRepository witsRecordRepository, CancellationToken token) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + if (telemetry is null) return NoContent(); - var dtos = await witsRecordRepository.GetLastAsync((int)idTelemetry, token); + var dtos = await witsRecordRepository.GetLastAsync(telemetry.Id, token); return Ok(dtos); } @@ -96,10 +96,10 @@ namespace AsbCloudWebApi.Controllers.WITS [FromServices] IWitsRecordRepository witsRecordRepository, CancellationToken token) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + if (telemetry is null) 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); } @@ -118,10 +118,10 @@ namespace AsbCloudWebApi.Controllers.WITS [FromServices] IWitsRecordRepository witsRecordRepository, CancellationToken token) { - var idTelemetry = telemetryService.GetOrDefaultIdTelemetryByIdWell(idWell); - if (idTelemetry is null) + var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell); + if (telemetry is null) return NoContent(); - var dtos = await witsRecordRepository.GetStatAsync((int)idTelemetry, token); + var dtos = await witsRecordRepository.GetStatAsync(telemetry.Id, token); return Ok(dtos); } }