Example #1
0
        /// <inheritdoc />
        public override async Task <object> Execute(WorkflowInstanceState state, CancellationToken token)
        {
            IEnumerator current = state.GetNodeData <IEnumerator>(NodeId);

            if (current == null)
            {
                state[NodeId] = current = await CreateEnumerator(state, token);
            }

            if (current.MoveNext())
            {
                state.Variables[Parameters.Item ?? "item"] = current.Current;
                return(new LoopCommand());
            }

            state.RemoveNodeData(NodeId);
            return(null);
        }