SubsystemOperationTimeService clean

This commit is contained in:
ngfrolov 2023-09-15 16:48:19 +05:00
parent 6a3fde7729
commit 0546929c38
Signed by: ng.frolov
GPG Key ID: E99907A0357B29A7
2 changed files with 6 additions and 33 deletions

View File

@ -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);
} }
} }

View File

@ -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;
} }
} }
} }