forked from ddrilling/AsbCloudServer
SubsystemOperationTimeService clean
This commit is contained in:
parent
6a3fde7729
commit
0546929c38
@ -64,13 +64,5 @@ namespace AsbCloudApp.Services.Subsystems
|
|||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<IEnumerable<SubsystemActiveWellStatDto>> GetStatByActiveWells(IEnumerable<int> wellIds, CancellationToken token);
|
Task<IEnumerable<SubsystemActiveWellStatDto>> GetStatByActiveWells(IEnumerable<int> wellIds, CancellationToken token);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Получение периода, за который будет расчитываться статистика
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="request"></param>
|
|
||||||
/// <param name="token"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
Task<IEnumerable<DateTime>> GetStatDateRangeAsync(SubsystemOperationTimeRequest request, CancellationToken token);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
using AsbCloudApp.Data.DetectedOperation;
|
using AsbCloudApp.Data.DetectedOperation;
|
||||||
using AsbCloudApp.Data.Subsystems;
|
using AsbCloudApp.Data.Subsystems;
|
||||||
|
using AsbCloudApp.Exceptions;
|
||||||
using AsbCloudApp.Requests;
|
using AsbCloudApp.Requests;
|
||||||
using AsbCloudApp.Services;
|
using AsbCloudApp.Services;
|
||||||
using AsbCloudApp.Services.Subsystems;
|
using AsbCloudApp.Services.Subsystems;
|
||||||
@ -17,10 +18,8 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.Subsystems
|
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||||
{
|
{
|
||||||
|
|
||||||
internal class SubsystemOperationTimeService : ISubsystemOperationTimeService
|
internal class SubsystemOperationTimeService : ISubsystemOperationTimeService
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
private readonly ICrudRepository<SubsystemDto> subsystemService;
|
private readonly ICrudRepository<SubsystemDto> subsystemService;
|
||||||
@ -111,22 +110,6 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
|||||||
return statList;
|
return statList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<DateTime>> GetStatDateRangeAsync(SubsystemOperationTimeRequest request, CancellationToken token)
|
|
||||||
{
|
|
||||||
request.SelectMode = SubsystemOperationTimeRequest.SelectModeTrim;
|
|
||||||
var data = await GetOperationTimeAsync(request, token);
|
|
||||||
if (data is null)
|
|
||||||
return Enumerable.Empty<DateTime>();
|
|
||||||
|
|
||||||
var dateRanges = new List<DateTime>
|
|
||||||
{
|
|
||||||
data.Min(d => d.DateStart),
|
|
||||||
data.Max(d => d.DateEnd)
|
|
||||||
};
|
|
||||||
|
|
||||||
return dateRanges.AsEnumerable();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IEnumerable<SubsystemOperationTime> TrimOperation(IEnumerable<SubsystemOperationTime> data, DateTimeOffset? gtDate, DateTimeOffset? ltDate)
|
private static IEnumerable<SubsystemOperationTime> TrimOperation(IEnumerable<SubsystemOperationTime> data, DateTimeOffset? gtDate, DateTimeOffset? ltDate)
|
||||||
{
|
{
|
||||||
if (!ltDate.HasValue && !gtDate.HasValue)
|
if (!ltDate.HasValue && !gtDate.HasValue)
|
||||||
@ -219,6 +202,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
|||||||
|
|
||||||
return depthInterval;
|
return depthInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double GetDepthIntervalSubsystem(int idSubsystem, (double depthIntervalRotor, double depthIntervalSlide) depthInterval)
|
private static double GetDepthIntervalSubsystem(int idSubsystem, (double depthIntervalRotor, double depthIntervalSlide) depthInterval)
|
||||||
{
|
{
|
||||||
var depthIntervalSubsystem = 0d;
|
var depthIntervalSubsystem = 0d;
|
||||||
@ -350,11 +334,11 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IQueryable<SubsystemOperationTime>? BuildQuery(SubsystemOperationTimeRequest request)
|
private IQueryable<SubsystemOperationTime> BuildQuery(SubsystemOperationTimeRequest request)
|
||||||
{
|
{
|
||||||
var well = wellService.GetOrDefault(request.IdWell);
|
var well = wellService.GetOrDefault(request.IdWell);
|
||||||
if (well?.IdTelemetry is null || well.Timezone is null)
|
if (well?.IdTelemetry is null || well.Timezone is null)
|
||||||
return null;
|
throw new ArgumentInvalidException($"Not valid IdWell = {request.IdWell}", nameof(request.IdWell));
|
||||||
|
|
||||||
var query = db.SubsystemOperationTimes
|
var query = db.SubsystemOperationTimes
|
||||||
.Include(o => o.Subsystem)
|
.Include(o => o.Subsystem)
|
||||||
@ -413,8 +397,5 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
|||||||
dto.DateEnd = operationTime.DateEnd.ToRemoteDateTime(hours);
|
dto.DateEnd = operationTime.DateEnd.ToRemoteDateTime(hours);
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user