forked from ddrilling/AsbCloudServer
Fix DetectedOperationService.BuildQueryBase()
This commit is contained in:
parent
f9a6279d0d
commit
1c7423aaab
@ -173,35 +173,34 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private IQueryable<DetectedOperation> BuildQueryBase(WellDto well, DetectedOperationRequest request)
|
||||
{
|
||||
var query = db.Set<DetectedOperation>()
|
||||
.Where(o => o.IdTelemetry == well.IdTelemetry);
|
||||
|
||||
if (request is not null)
|
||||
if (request.IdsTelemetries.Any())
|
||||
{
|
||||
if (request.IdsTelemetries.Any())
|
||||
query = query.Where(o => request.IdsTelemetries.Contains(o.IdTelemetry));
|
||||
query = query
|
||||
.Union(db.Set<DetectedOperation>().Where(o => request.IdsTelemetries.Contains(o.IdTelemetry)));
|
||||
}
|
||||
|
||||
if (request.IdsCategories.Any())
|
||||
query = query.Where(o => request.IdsCategories.Contains(o.IdCategory));
|
||||
if (request.IdsCategories.Any())
|
||||
query = query.Where(o => request.IdsCategories.Contains(o.IdCategory));
|
||||
|
||||
if (request.GeDateStart is not null)
|
||||
query = query.Where(o => o.DateStart >= request.GeDateStart.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
|
||||
if (request.GeDateStart is not null)
|
||||
query = query.Where(o => o.DateStart >= request.GeDateStart.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
|
||||
|
||||
if (request.LeDateEnd is not null)
|
||||
query = query.Where(o => o.DateEnd <= request.LeDateEnd.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
|
||||
if (request.LeDateEnd is not null)
|
||||
query = query.Where(o => o.DateEnd <= request.LeDateEnd.Value.Date.ToUtcDateTimeOffset(well.Timezone.Hours));
|
||||
|
||||
if (request.GeDepth is not null)
|
||||
query = query.Where(o => o.DepthStart >= request.GeDepth);
|
||||
if (request.GeDepth is not null)
|
||||
query = query.Where(o => o.DepthStart >= request.GeDepth);
|
||||
|
||||
if (request.LeDepth is not null)
|
||||
query = query.Where(o => o.DepthEnd <= request.LeDepth);
|
||||
if (request.LeDepth is not null)
|
||||
query = query.Where(o => o.DepthEnd <= request.LeDepth);
|
||||
|
||||
if (request.IdTelemetryUser is not null)
|
||||
query = query.Where(o => o.IdUsersAtStart == request.IdTelemetryUser);
|
||||
}
|
||||
if (request.IdTelemetryUser is not null)
|
||||
query = query.Where(o => o.IdUsersAtStart == request.IdTelemetryUser);
|
||||
|
||||
return query;
|
||||
}
|
||||
@ -211,7 +210,7 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
||||
IQueryable<DetectedOperation> query = BuildQueryBase(well, request)
|
||||
.Include(o => o.OperationCategory);
|
||||
|
||||
if (request?.SortFields?.Any() == true)
|
||||
if (request.SortFields?.Any() == true)
|
||||
{
|
||||
query = query.SortBy(request.SortFields);
|
||||
}
|
||||
@ -220,10 +219,10 @@ namespace AsbCloudInfrastructure.Services.DetectOperations
|
||||
.OrderBy(o => o.DateStart)
|
||||
.ThenBy(o => o.DepthStart);
|
||||
|
||||
if (request?.Skip > 0)
|
||||
if (request.Skip.HasValue)
|
||||
query = query.Skip((int)request.Skip);
|
||||
|
||||
if (request?.Take > 0)
|
||||
if (request.Take.HasValue)
|
||||
query = query.Take((int)request.Take);
|
||||
|
||||
return query;
|
||||
|
Loading…
Reference in New Issue
Block a user