@@ -299,7 +299,7 @@ private async Task ProcessArtifactReceivedOutputs(ArtifactsReceivedEvent message
299299 private async Task < bool > AllRequiredArtifactsReceivedAsync ( ArtifactsReceivedEvent message , WorkflowInstance workflowInstance ,
300300 string taskId , string workflowInstanceId , WorkflowRevision workflowTemplate , IEnumerable < ArtifactType > receivedArtifacts )
301301 {
302- var taskExecution = workflowInstance . Tasks . FirstOrDefault ( t => t . TaskId == taskId ) ;
302+ var taskExecution = Array . Find < TaskExecution > ( [ .. workflowInstance . Tasks ] , t => t . TaskId == taskId ) ;
303303
304304 if ( taskExecution is null )
305305 {
@@ -326,7 +326,8 @@ await _workflowInstanceRepository.UpdateTaskStatusAsync(workflowInstanceId, task
326326 private string [ ] GetTasksWithAllInputs ( WorkflowRevision workflowTemplate , string currentTaskId , IEnumerable < ArtifactType > artifactsRecieved )
327327 {
328328 var excutableTasks = new List < String > ( ) ;
329- var task = workflowTemplate . Workflow ! . Tasks . FirstOrDefault ( t => t . Id == currentTaskId ) ;
329+
330+ var task = Array . Find < TaskObject > ( workflowTemplate . Workflow ! . Tasks , t => t . Id == currentTaskId ) ;
330331 if ( task is null )
331332 {
332333 _logger . ErrorFindingTask ( currentTaskId ) ;
@@ -354,8 +355,9 @@ private string[] GetTasksWithAllInputs(WorkflowRevision workflowTemplate, string
354355 private Dictionary < ArtifactType , bool > GetTasksInput ( WorkflowRevision workflowTemplate , string taskId , string previousTaskId )
355356 {
356357 var results = new Dictionary < ArtifactType , bool > ( ) ;
357- var task = workflowTemplate . Workflow ! . Tasks . FirstOrDefault ( t => t . Id == taskId ) ;
358- var previousTask = workflowTemplate . Workflow ! . Tasks . FirstOrDefault ( t => t . Id == previousTaskId ) ;
358+
359+ var task = Array . Find < TaskObject > ( workflowTemplate . Workflow ! . Tasks , t => t . Id == taskId ) ;
360+ var previousTask = Array . Find < TaskObject > ( workflowTemplate . Workflow ! . Tasks , t => t . Id == previousTaskId ) ;
359361 if ( previousTask is null || task is null )
360362 {
361363 _logger . ErrorFindingTask ( taskId ) ;
@@ -969,6 +971,8 @@ private async Task<List<TaskExecution>> CreateTaskDestinations(
969971 string taskId ,
970972 IEnumerable < ArtifactType > receivedArtifacts )
971973 {
974+ _ = workflow ?? throw new ArgumentNullException ( nameof ( workflow ) ) ;
975+
972976 var currentTaskDestinations = workflow . Workflow ? . Tasks ? . SingleOrDefault ( t => t . Id == taskId ) ? . TaskDestinations ;
973977
974978 var newTaskExecutions = new List < TaskExecution > ( ) ;
@@ -981,7 +985,7 @@ private async Task<List<TaskExecution>> CreateTaskDestinations(
981985 foreach ( var taskDest in currentTaskDestinations )
982986 {
983987 // have we got all inputs we need ?
984- var neededInputs = GetTasksInput ( workflow , taskDest . Name , taskId ) . Where ( t => t . Value ) ;
988+ var neededInputs = GetTasksInput ( workflow ! , taskDest . Name , taskId ) . Where ( t => t . Value ) ;
985989 var remainingManditory = neededInputs . Where ( i => receivedArtifacts . Any ( a => a == i . Key ) is false ) ;
986990 if ( remainingManditory . Count ( ) is not 0 )
987991 {
0 commit comments