コード例 #1
0
        public override void Execute()
        {
            var current = Parent;

            while (current != null)
            {
                WorkFlowContext.AddInstruction(current, new BreakInstruction());
                current = current.Parent;
            }
        }
コード例 #2
0
ファイル: BreakNode.cs プロジェクト: Jiddler/Kedja
        public override void Execute()
        {
            var current = Parent;

            for (int i = 0; i < _levels && current != null; i++)
            {
                WorkFlowContext.AddInstruction(current, new BreakInstruction());
                current = current.Parent;
            }
        }
コード例 #3
0
ファイル: RetryNode.cs プロジェクト: Jiddler/Kedja
        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());
            }
        }
コード例 #4
0
        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());
        }