protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            if (executionContext == null)
            {
                throw new ArgumentNullException("executionContext");
            }

            bool noneTrue = true;

            for (int i = 0; i < this.EnabledActivities.Count; ++i)
            {
                IfElseBranchActivity branch = this.EnabledActivities[i] as IfElseBranchActivity;

                // Else case dont have enable condition so find them and enable it
                if (branch.Condition == null || branch.Condition.Evaluate(branch, executionContext))
                {
                    noneTrue = false;
                    branch.RegisterForStatusChange(Activity.ClosedEvent, this);
                    executionContext.ExecuteActivity(branch);
                    break;
                }
            }

            return(noneTrue ? ActivityExecutionStatus.Closed : ActivityExecutionStatus.Executing);
        }
Exemple #2
0
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            if (executionContext == null)
            {
                throw new ArgumentNullException("executionContext");
            }
            bool flag = true;

            for (int i = 0; i < base.EnabledActivities.Count; i++)
            {
                IfElseBranchActivity activity = base.EnabledActivities[i] as IfElseBranchActivity;
                if ((activity.Condition == null) || activity.Condition.Evaluate(activity, executionContext))
                {
                    flag = false;
                    activity.RegisterForStatusChange(Activity.ClosedEvent, this);
                    executionContext.ExecuteActivity(activity);
                    break;
                }
            }
            if (!flag)
            {
                return(ActivityExecutionStatus.Executing);
            }
            return(ActivityExecutionStatus.Closed);
        }