diff --git a/backend/api/EventHandlers/MissionEventHandler.cs b/backend/api/EventHandlers/MissionEventHandler.cs index 10d06fa2..26b00259 100644 --- a/backend/api/EventHandlers/MissionEventHandler.cs +++ b/backend/api/EventHandlers/MissionEventHandler.cs @@ -89,6 +89,14 @@ private async void OnMissionRunCreated(object? sender, MissionRunCreatedEventArg private async void OnRobotAvailable(object? sender, RobotAvailableEventArgs e) { + if (e.Robot.Status != RobotStatus.Available) + { + _logger.LogWarning( + "OnRobotAvailable was triggered while robot was {robotStatus}", + e.Robot.Status + ); + return; + } _startMissionSemaphore.WaitOne(); try { diff --git a/backend/api/EventHandlers/MqttEventHandler.cs b/backend/api/EventHandlers/MqttEventHandler.cs index 880e20b8..8d8f0e90 100644 --- a/backend/api/EventHandlers/MqttEventHandler.cs +++ b/backend/api/EventHandlers/MqttEventHandler.cs @@ -454,7 +454,7 @@ await MissionRunService.UpdateMissionRunStatusByIsarMissionId( if (updatedFlotillaMissionRun.MissionId == null) { _logger.LogInformation( - "Mission run {missionRunId} does not have a mission definition assosiated with it", + "Mission run {missionRunId} does not have a mission definition associated with it", updatedFlotillaMissionRun.Id ); return; diff --git a/backend/api/Services/MissionRunService.cs b/backend/api/Services/MissionRunService.cs index 1ebbdb57..dfb889e5 100644 --- a/backend/api/Services/MissionRunService.cs +++ b/backend/api/Services/MissionRunService.cs @@ -296,7 +296,7 @@ public bool IncludesUnsupportedInspectionType(MissionRun missionRun) ); } - public async Task Update(MissionRun missionRun) + public async Task Update(MissionRun missionRun) { if (missionRun.Robot is not null) { @@ -320,7 +320,6 @@ public async Task Update(MissionRun missionRun) missionRun != null ? new MissionRunResponse(missionRun) : null ); DetachTracking(context, missionRun!); - return entry.Entity; } public async Task Delete(string id) @@ -664,11 +663,7 @@ MissionStatus missionStatus missionRun.Status = missionStatus; - missionRun = await UpdateMissionRunProperty( - missionRun.Id, - "MissionStatus", - missionStatus - ); + missionRun = await UpdateMissionRunProperty(missionRun.Id, "Status", missionStatus); if (missionRun.Status == MissionStatus.Failed) { @@ -716,7 +711,7 @@ public async Task UpdateMissionRunProperty( try { - missionRun = await Update(missionRun); + await Update(missionRun); } catch (InvalidOperationException e) { @@ -778,7 +773,8 @@ await ReadById(missionRunId, readOnly: true) task.Inspection.Status = InspectionStatus.Failed; } } - return await Update(missionRun); + await Update(missionRun); + return missionRun; } public void DetachTracking(FlotillaDbContext context, MissionRun missionRun) @@ -818,7 +814,8 @@ await ReadById(missionRunId, readOnly: true) var task = missionRun.GetTaskByIsarId(isarTask.IsarTaskId); task?.UpdateWithIsarInfo(isarTask); } - return await Update(missionRun); + await Update(missionRun); + return missionRun; } } }