diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs index 7ce72cac..8ca42f46 100644 --- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs +++ b/AsbCloudInfrastructure/Services/Subsystems/SubsystemOperationTimeBackgroundService.cs @@ -108,15 +108,21 @@ namespace AsbCloudInfrastructure.Services.Subsystems } private static async Task> OperationTimeSaubAsync(int idTelemetry, DateTimeOffset begin, IAsbCloudDbContext db, CancellationToken token) { - static int? GetSubsytemId(short mode, short state) + static int? GetSubsytemId(short mode) { if (mode == 1 | mode == 3) return 1; - if ((state & 1) > 0) - return 2; + return null; } + static bool IsSubsystemMse(short state) + { + if ((state & 1) > 0) + return true; + return false; + } + var query = $"select tt.date, tt.mode, tt.well_depth, tt.mse_state " + $"from ( " + @@ -151,7 +157,7 @@ namespace AsbCloudInfrastructure.Services.Subsystems { var mode = result.GetFieldValue(1); var mseState = result.GetFieldValue(3); - var idSubsystem = GetSubsytemId(mode, mseState); + var idSubsystem = GetSubsytemId(mode); var dateStart = result.GetFieldValue(0); var depthStart = result.GetFieldValue(2); @@ -183,13 +189,25 @@ namespace AsbCloudInfrastructure.Services.Subsystems DepthEnd = depthEnd }; subsystemOperationTime.Add(operationTimeItem); - + if (IsSubsystemMse(mseState)) + { + var operationTimeItemMse = new SubsystemOperationTime() + { + IdTelemetry = idTelemetry, + IdSubsystem = 2, + DateStart = (DateTimeOffset)(prevSubsystem1 ? prevDate : dateStart), + DateEnd = dateEnd, + DepthStart = depthStart, + DepthEnd = depthEnd + }; + subsystemOperationTime.Add(operationTimeItemMse); + } } mode = result.GetFieldValue(1); mseState = result.GetFieldValue(3); - idSubsystem = GetSubsytemId(mode, mseState); + idSubsystem = GetSubsytemId(mode); dateStart = dateEnd; depthStart = depthEnd; }