private void StartAvailableProcessSteps() { while (true) { ProcessStep processStep = _processDependencyGraph.GetNextProcessStep(_processState); if (processStep == null) { break; } Console.WriteLine("Started: " + processStep.Name); processStep.Start(); _processState.ProcessStarted(processStep); } }
public void ProcessStarted(ProcessStep processStep) { _startedProcessSteps.Add(processStep); }
public void CompleteStep(ProcessStep processStep) { _completedProcessStep.Add(processStep); _startedProcessSteps.Remove(processStep); }
public ProcessStep GetNextProcessStep(ProcessState processState) { ProcessStep nextProcessStep = _processSteps.FirstOrDefault(x => x.DependenciesAreSatisfied(processState)); return(nextProcessStep); }