From 5956f8238fac404364f1770ea300ca782944e040 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Thu, 2 Feb 2023 14:30:27 +0500 Subject: [PATCH] #8103063 nit prettify --- .../Repositories/IProcessMapRepository.cs | 2 +- .../Repositories/IWellCompositeRepository.cs | 2 +- AsbCloudApp/Requests/ProcessMapRequest.cs | 2 +- .../Repository/ProcessMapRepository.cs | 35 +++++++++++-------- .../Repository/WellCompositeRepository.cs | 10 +++--- 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/AsbCloudApp/Repositories/IProcessMapRepository.cs b/AsbCloudApp/Repositories/IProcessMapRepository.cs index 01dac891..0bc9ac7b 100644 --- a/AsbCloudApp/Repositories/IProcessMapRepository.cs +++ b/AsbCloudApp/Repositories/IProcessMapRepository.cs @@ -30,7 +30,7 @@ namespace AsbCloudApp.Repositories /// /// /// - Task?> GetProcessMaplAsync(IEnumerable requests, CancellationToken token); + Task> GetProcessMapAsync(IEnumerable requests, CancellationToken token); } #nullable disable } \ No newline at end of file diff --git a/AsbCloudApp/Repositories/IWellCompositeRepository.cs b/AsbCloudApp/Repositories/IWellCompositeRepository.cs index 8369a803..8b24d32f 100644 --- a/AsbCloudApp/Repositories/IWellCompositeRepository.cs +++ b/AsbCloudApp/Repositories/IWellCompositeRepository.cs @@ -35,7 +35,7 @@ namespace AsbCloudApp.Repositories /// /// /// - Task?> GetCompositeProcessMap(int idWell, CancellationToken token); + Task> GetCompositeProcessMap(int idWell, CancellationToken token); } #nullable disable } diff --git a/AsbCloudApp/Requests/ProcessMapRequest.cs b/AsbCloudApp/Requests/ProcessMapRequest.cs index 45b56cf5..55adb7fd 100644 --- a/AsbCloudApp/Requests/ProcessMapRequest.cs +++ b/AsbCloudApp/Requests/ProcessMapRequest.cs @@ -17,7 +17,7 @@ namespace AsbCloudApp.Requests /// /// Тип секции /// - public int? IdWellSectionTypes { get; set; } + public int? IdWellSectionType { get; set; } /// /// Дата обновления diff --git a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs index b138f068..95330293 100644 --- a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs +++ b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs @@ -4,8 +4,10 @@ using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; using AsbCloudDb.Model; +using DocumentFormat.OpenXml.Spreadsheet; using Mapster; using Microsoft.EntityFrameworkCore; +using Org.BouncyCastle.Asn1.Ocsp; using System; using System.Collections.Generic; using System.Linq; @@ -32,7 +34,7 @@ namespace AsbCloudInfrastructure.Repository public async Task> GetAllAsync(int idWell, DateTime? updateFrom, CancellationToken token) { - var request = new[] + var requests = new[] { new ProcessMapRequest { IdWell = idWell, @@ -40,7 +42,7 @@ namespace AsbCloudInfrastructure.Repository } }; - var entities = await BuildQuery(request) + var entities = await BuildQuery(requests) .OrderBy(e => e.DepthStart) .ThenBy(e => e.Id) .ToListAsync(token) @@ -50,7 +52,7 @@ namespace AsbCloudInfrastructure.Repository return dtos; } - public async Task?> GetProcessMaplAsync(IEnumerable requests, CancellationToken token) + public async Task> GetProcessMapAsync(IEnumerable requests, CancellationToken token) { var entities = await BuildQuery(requests) .ToListAsync(token) @@ -75,25 +77,30 @@ namespace AsbCloudInfrastructure.Repository return result; } - private IQueryable BuildQuery(IEnumerable request) + private IQueryable BuildQuery(IEnumerable requests) { var query = GetQuery(); - - foreach (var item in request) + Func? p = null; + foreach (var request in requests) { - query.Where(w => w.IdWell == item.IdWell); + var p2 = (ProcessMap map) => map.IdWell == request.IdWell; - if (item.IdWellSectionTypes is not null) - query.Where(w => w.IdWellSectionType == item.IdWellSectionTypes); + if (request.IdWellSectionType is not null) + p2 = (ProcessMap map) => p2(map) && map.IdWellSectionType == request.IdWellSectionType; - if (item.UpdateFrom is not null) + if (request.UpdateFrom is not null) { - var timezone = wellService.GetTimezone(item.IdWell); - var updateFromUtc = item.UpdateFrom?.ToUtcDateTimeOffset(timezone.Hours); - query.Where(e => e.LastUpdate >= updateFromUtc); + var timezone = wellService.GetTimezone(request.IdWell); + var updateFromUtc = request.UpdateFrom?.ToUtcDateTimeOffset(timezone.Hours); + p2 = (ProcessMap map) => p2(map) && map.LastUpdate >= updateFromUtc; } + + p = p is null + ? p2 + : (ProcessMap map) => p(map) || p2(map); } - + if(p is not null) + query.Where(p); return query; } protected override ProcessMapDto Convert(ProcessMap entity) diff --git a/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs b/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs index 1951dd68..d9b7b8ab 100644 --- a/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs +++ b/AsbCloudInfrastructure/Repository/WellCompositeRepository.cs @@ -50,18 +50,18 @@ namespace AsbCloudInfrastructure.Repository } /// - public async Task?> GetCompositeProcessMap(int idWell, CancellationToken token) + public async Task> GetCompositeProcessMap(int idWell, CancellationToken token) { var dtos = await GetAsync(idWell, token); - var request = dtos.Select(x => new ProcessMapRequest { + var requests = dtos.Select(x => new ProcessMapRequest { IdWell = x.IdWellSrc, - IdWellSectionTypes = x.IdWellSectionType + IdWellSectionType = x.IdWellSectionType }); - var processMap = (await processMapRepository.GetProcessMaplAsync(request, token)); + var processMap = await processMapRepository.GetProcessMapAsync(requests, token); - var result = processMap?.Select(x => new ProcessMapDto + var result = processMap.Select(x => new ProcessMapDto { IdWell = x.IdWell, IdWellSectionType = x.IdWellSectionType,