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,