public override void Execute() { var current = Parent; while (current != null) { WorkFlowContext.AddInstruction(current, new BreakInstruction()); current = current.Parent; } }
public override void Execute() { var current = Parent; for (int i = 0; i < _levels && current != null; i++) { WorkFlowContext.AddInstruction(current, new BreakInstruction()); current = current.Parent; } }
public override void Execute() { var containerNode = Parent; var branchNode = containerNode.Parent; WorkFlowContext.AddInstruction(containerNode, new BreakInstruction()); WorkFlowContext.AddInstruction(branchNode, new BreakInstruction()); if (_retries++ < _maxRetries) { WorkFlowContext.AddInstruction(branchNode, new RetryInstruction()); } }
public override void Execute() { _restarts++; if (_maxRestart >= 0 && _maxRestart <= _restarts) { return; } AbstractNode <TState> current = this; do { current = current.Parent; WorkFlowContext.AddInstruction(current, new BreakInstruction()); } while(_target != current); WorkFlowContext.AddInstruction(current, new RestartInstruction()); }