@@ -11,7 +11,7 @@ public interface IMissionSchedulingService
1111 {
1212 public Task StartNextMissionRunIfSystemIsAvailable ( Robot robot ) ;
1313
14- public Task < MissionRun > MoveMissionRunBackToQueue (
14+ public Task < MissionRun ? > MoveMissionRunBackToQueue (
1515 string robotId ,
1616 string ? isarMissionRunId ,
1717 string ? stopReason = null
@@ -200,7 +200,7 @@ await missionRunService.SetMissionRunToFailed(
200200 catch ( RobotBusyException ) { }
201201 }
202202
203- public async Task < MissionRun > MoveMissionRunBackToQueue (
203+ public async Task < MissionRun ? > MoveMissionRunBackToQueue (
204204 string robotId ,
205205 string ? isarMissionRunId ,
206206 string ? stopReason = null
@@ -244,12 +244,7 @@ await missionRunService.UpdateMissionRunProperty(
244244 await missionRunService . UpdateMissionRunProperty (
245245 missionRun . Id ,
246246 "Status" ,
247- MissionStatus . Queued
248- ) ;
249- _ = signalRService . SendMessageAsync (
250- "Mission run created" ,
251- missionRun . InspectionArea . Installation ,
252- new MissionRunResponse ( missionRun )
247+ MissionStatus . Aborted
253248 ) ;
254249
255250 try
@@ -268,6 +263,36 @@ await missionRunService.UpdateMissionRunProperty(
268263 ) ;
269264 }
270265
266+ var unfinishedTasks = missionRun
267+ . Tasks . Where (
268+ ( t ) =>
269+ t . Status != Database . Models . TaskStatus . Successful
270+ && t . Status != Database . Models . TaskStatus . PartiallySuccessful
271+ )
272+ . ToList ( ) ;
273+
274+ if ( unfinishedTasks . Count < 1 )
275+ return null ;
276+
277+ var newMissionRun = new MissionRun
278+ {
279+ Name = missionRun . Name ,
280+ Robot = robot ,
281+ MissionId = missionRun . Id ,
282+ Status = MissionStatus . Queued ,
283+ CreationTime = missionRun . CreationTime ,
284+ Tasks = unfinishedTasks ,
285+ InstallationCode = missionRun . InstallationCode ,
286+ InspectionArea = missionRun . InspectionArea ,
287+ } ;
288+ await missionRunService . Create ( newMissionRun ) ;
289+
290+ _ = signalRService . SendMessageAsync (
291+ "Mission run created" ,
292+ newMissionRun . InspectionArea . Installation ,
293+ new MissionRunResponse ( newMissionRun )
294+ ) ;
295+
271296 return missionRun ;
272297 }
273298
0 commit comments