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

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

View File

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