forked from ddrilling/AsbCloudServer
SubsystemOperationTimeService clean
This commit is contained in:
parent
6a3fde7729
commit
0546929c38
@ -63,14 +63,6 @@ namespace AsbCloudApp.Services.Subsystems
|
||||
/// <param name="wellIds"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
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);
|
||||
Task<IEnumerable<SubsystemActiveWellStatDto>> GetStatByActiveWells(IEnumerable<int> wellIds, CancellationToken token);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using AsbCloudApp.Data;
|
||||
using AsbCloudApp.Data.DetectedOperation;
|
||||
using AsbCloudApp.Data.Subsystems;
|
||||
using AsbCloudApp.Exceptions;
|
||||
using AsbCloudApp.Requests;
|
||||
using AsbCloudApp.Services;
|
||||
using AsbCloudApp.Services.Subsystems;
|
||||
@ -17,10 +18,8 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services.Subsystems
|
||||
{
|
||||
|
||||
internal class SubsystemOperationTimeService : ISubsystemOperationTimeService
|
||||
{
|
||||
|
||||
private readonly IAsbCloudDbContext db;
|
||||
private readonly IWellService wellService;
|
||||
private readonly ICrudRepository<SubsystemDto> subsystemService;
|
||||
@ -111,22 +110,6 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
||||
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)
|
||||
{
|
||||
if (!ltDate.HasValue && !gtDate.HasValue)
|
||||
@ -219,6 +202,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
||||
|
||||
return depthInterval;
|
||||
}
|
||||
|
||||
private static double GetDepthIntervalSubsystem(int idSubsystem, (double depthIntervalRotor, double depthIntervalSlide) depthInterval)
|
||||
{
|
||||
var depthIntervalSubsystem = 0d;
|
||||
@ -350,11 +334,11 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
||||
return result;
|
||||
}
|
||||
|
||||
private IQueryable<SubsystemOperationTime>? BuildQuery(SubsystemOperationTimeRequest request)
|
||||
private IQueryable<SubsystemOperationTime> BuildQuery(SubsystemOperationTimeRequest request)
|
||||
{
|
||||
var well = wellService.GetOrDefault(request.IdWell);
|
||||
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
|
||||
.Include(o => o.Subsystem)
|
||||
@ -412,9 +396,6 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
||||
dto.DateStart = operationTime.DateStart.ToRemoteDateTime(hours);
|
||||
dto.DateEnd = operationTime.DateEnd.ToRemoteDateTime(hours);
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user