コード例 #1
0
ファイル: JoinActivity.cs プロジェクト: RareNCool/MyToolkit
        private bool HasCurrentActivityBeforeActivity(WorkflowActivityInput input, WorkflowDefinition definition,
            IWorkflowActivityBase activity, List<WorkflowTransition> checkedTransitions)
        {
            var inboundTransitions = definition.GetInboundTransitions(activity);
            if (inboundTransitions.Any(t => input.Instance.CurrentActivityIds.Contains(t.From)))
                return true;

            checkedTransitions.AddRange(inboundTransitions);
            foreach (var transition in inboundTransitions)
            {
                if (HasCurrentActivityBeforeActivity(input, definition, definition.GetActivityById(transition.From), checkedTransitions))
                    return true;
            }

            return false;
        }
コード例 #2
0
ファイル: JoinActivity.cs プロジェクト: yannduran/MyToolkit
        private bool HasCurrentActivityBeforeActivity(WorkflowActivityInput input, WorkflowDefinition definition,
                                                      IWorkflowActivityBase activity, List <WorkflowTransition> checkedTransitions)
        {
            var inboundTransitions = definition.GetInboundTransitions(activity);

            if (inboundTransitions.Any(t => input.Instance.CurrentActivityIds.Contains(t.From)))
            {
                return(true);
            }

            checkedTransitions.AddRange(inboundTransitions);
            foreach (var transition in inboundTransitions)
            {
                if (HasCurrentActivityBeforeActivity(input, definition, definition.GetActivityById(transition.From), checkedTransitions))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #3
0
ファイル: JoinActivity.cs プロジェクト: yannduran/MyToolkit
        /// <summary>Called when the previous activity has been executed.
        /// The method may be called multiple times when there are multiple incoming transitions. </summary>
        /// <param name="input">The input. </param>
        /// <param name="definition">The workflow definition. </param>
        /// <returns>True when the activity should be automatically and immediately executed (with no args). </returns>
        internal override Task <bool> PrepareAsync(WorkflowActivityInput input, WorkflowDefinition definition)
        {
            var immediatelyExecute = !HasCurrentActivityBeforeActivity(input, definition, this, new List <WorkflowTransition>());

            return(Task.FromResult(immediatelyExecute));
        }
コード例 #4
0
 /// <summary>Called when the previous activity has been executed. 
 /// The method may be called multiple times when there are multiple incoming transitions. </summary>
 /// <param name="input">The input. </param>
 /// <returns>True when the activity should be automatically and immediately executed (with no args). </returns>
 public override Task<bool> PrepareAsync(WorkflowActivityInput input)
 {
     return Task.FromResult(true);
 }
コード例 #5
0
 /// <summary>Called when the previous activity has been executed.
 /// The method may be called multiple times when there are multiple incoming transitions. </summary>
 /// <param name="input">The input. </param>
 /// <returns>True when the activity should be automatically and immediately executed (with no args). </returns>
 public override Task <bool> PrepareAsync(WorkflowActivityInput input)
 {
     return(Task.FromResult(true));
 }
コード例 #6
0
ファイル: JoinActivity.cs プロジェクト: RareNCool/MyToolkit
 /// <summary>Called when the previous activity has been executed. 
 /// The method may be called multiple times when there are multiple incoming transitions. </summary>
 /// <param name="input">The input. </param>
 /// <param name="definition">The workflow definition. </param>
 /// <returns>True when the activity should be automatically and immediately executed (with no args). </returns>
 internal override Task<bool> PrepareAsync(WorkflowActivityInput input, WorkflowDefinition definition)
 {
     var immediatelyExecute = !HasCurrentActivityBeforeActivity(input, definition, this, new List<WorkflowTransition>());
     return Task.FromResult(immediatelyExecute);
 }