From df5c98838d80247eb170662a86d98140880585b2 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Tue, 20 Sep 2022 15:09:01 +0500 Subject: [PATCH] Fix DrillParamsService.GetAllAsync(..) --- .../Services/DrillParamsService.cs | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/AsbCloudInfrastructure/Services/DrillParamsService.cs b/AsbCloudInfrastructure/Services/DrillParamsService.cs index bc488e6e..a081bdd9 100644 --- a/AsbCloudInfrastructure/Services/DrillParamsService.cs +++ b/AsbCloudInfrastructure/Services/DrillParamsService.cs @@ -89,16 +89,31 @@ namespace AsbCloudInfrastructure.Services public async Task> GetAllAsync(int idWell, CancellationToken token = default) { - var entities = await (from p in db.DrillParams - where p.IdWell == idWell - orderby p.Id - select p) - .AsNoTracking() - .ToListAsync(token) - .ConfigureAwait(false); + var entities = await db.DrillParams + .Where(p => p.IdWell == idWell) + .OrderBy(p=> p.Id) + .AsNoTracking() + .ToArrayAsync(token) + .ConfigureAwait(false); - var dto = entities.Adapt>(); - return dto; + var dtos = entities.Select(p => + { + var dto = new DrillParamsDto + { + IdWell = p.IdWell, + Id = p.Id, + IdWellSectionType = p.IdWellSectionType, + Depth = new MinMaxDto { Max = p.PressureMax, Min = p.PressureMin }, + Pressure = MakeMinMaxExtended(p.PressureAvg, p.PressureMax, p.PressureMin), + AxialLoad = MakeMinMaxExtended(p.AxialLoadAvg, p.AxialLoadMax, p.AxialLoadMin), + Flow = MakeMinMaxExtended(p.FlowAvg, p.FlowMax, p.FlowMin), + RotorSpeed = MakeMinMaxExtended(p.RotorSpeedAvg, p.RotorSpeedMax, p.RotorSpeedMin), + RotorTorque = MakeMinMaxExtended(p.RotorTorqueAvg, p.RotorTorqueMax, p.RotorTorqueMin) + }; + return dto; + }); + + return dtos; } public async Task> GetCompositeAllAsync(int idWell, @@ -181,27 +196,27 @@ namespace AsbCloudInfrastructure.Services { Id = entity.Id, IdWellSectionType = entity.IdWellSectionType, - AxialLoad = GetMinMaxExtended(entity.AxialLoadAvg, entity.AxialLoadMax, entity.AxialLoadMin, drillParams.Select(x => (x.AxialLoadMin, x.AxialLoadMax))), + AxialLoad = MakeMinMaxExtended(entity.AxialLoadAvg, entity.AxialLoadMax, entity.AxialLoadMin, drillParams.Select(x => (x.AxialLoadMin, x.AxialLoadMax))), Depth = new MinMaxDto { Min = entity.DepthEnd, Max = entity.DepthStart }, - Flow = GetMinMaxExtended(entity.FlowAvg, entity.FlowMax, entity.FlowMin, drillParams.Select(x => (x.FlowMin, x.FlowMax))), + Flow = MakeMinMaxExtended(entity.FlowAvg, entity.FlowMax, entity.FlowMin, drillParams.Select(x => (x.FlowMin, x.FlowMax))), IdWell = entity.IdWell, - Pressure = GetMinMaxExtended(entity.PressureAvg, entity.PressureMax, entity.PressureMin, drillParams.Select(x => (x.PressureMin, x.PressureMax))), - RotorSpeed = GetMinMaxExtended(entity.RotorSpeedAvg, entity.RotorSpeedMax, entity.RotorSpeedMin, drillParams.Select(x => (x.RotorSpeedMin, x.RotorSpeedMax))), - RotorTorque = GetMinMaxExtended(entity.RotorTorqueAvg, entity.RotorTorqueMax, entity.RotorTorqueMin, drillParams.Select(x => (x.RotorTorqueMin, x.RotorTorqueMax))) + Pressure = MakeMinMaxExtended(entity.PressureAvg, entity.PressureMax, entity.PressureMin, drillParams.Select(x => (x.PressureMin, x.PressureMax))), + RotorSpeed = MakeMinMaxExtended(entity.RotorSpeedAvg, entity.RotorSpeedMax, entity.RotorSpeedMin, drillParams.Select(x => (x.RotorSpeedMin, x.RotorSpeedMax))), + RotorTorque = MakeMinMaxExtended(entity.RotorTorqueAvg, entity.RotorTorqueMax, entity.RotorTorqueMin, drillParams.Select(x => (x.RotorTorqueMin, x.RotorTorqueMax))) }; } - private static MinMaxExtendedViewDto GetMinMaxExtended(double avg, double max, double min, IEnumerable<(double min, double max)> allDrillParams) + private static MinMaxExtendedViewDto MakeMinMaxExtended(double avg, double max, double min, IEnumerable<(double min, double max)>? allDrillParams = null) => new MinMaxExtendedViewDto { Avg = avg, Max = max, Min = min, - IsMax = allDrillParams.Any(mx => mx.max > max), - IsMin = allDrillParams.Any(mn => mn.min < min) - }; + IsMax = allDrillParams?.Any(mx => mx.max > max) ?? false, + IsMin = allDrillParams?.Any(mn => mn.min < min) ?? false + }; } #nullable disable }