private void EvaluateNextCommand() { if (this.ChildContext == null) { if (commands.Count > 0) { Command cmd = commands[0]; commands.RemoveAt(0); ChildContext = cmd; cmd.Evaluate(); } else { State = ExecutionState.DONE; } } }