private static bool TryScheduleNextChild(CompositeActivity activity, ActivityExecutionContext executionContext) { IList <Activity> children = activity.EnabledActivities; // Find index of next activity to run. int indexOfNextActivity = 0; for (int i = (children.Count - 1); i >= 0; i--) { if (children[i].ExecutionStatus == ActivityExecutionStatus.Closed) { // Check whether this is last child? if (i == (children.Count - 1)) { return(false); } indexOfNextActivity = i + 1; break; } } children[indexOfNextActivity].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener <ActivityExecutionStatusChangedEventArgs>)activity); executionContext.ExecuteActivity(children[indexOfNextActivity]); activity.SetValue(ActiveChildQualifiedNameProperty, children[indexOfNextActivity].QualifiedName); return(true); }
public static void OnActivityChangeRemove(CompositeActivity activity, ActivityExecutionContext executionContext, Activity removedActivity) { string str = activity.GetValue(ActiveChildQualifiedNameProperty) as string; if (removedActivity.QualifiedName.Equals(str)) { activity.SetValue(ActiveChildRemovedProperty, true); } }
public static void OnActivityChangeRemove(CompositeActivity activity, ActivityExecutionContext executionContext, Activity removedActivity) { String activeChildQualifiedName = activity.GetValue(ActiveChildQualifiedNameProperty) as String; if (removedActivity.QualifiedName.Equals(activeChildQualifiedName)) { activity.SetValue(ActiveChildRemovedProperty, true); } }
public static ActivityExecutionStatus Execute(CompositeActivity activity, ActivityExecutionContext executionContext) { if (activity.EnabledActivities.Count == 0) { return ActivityExecutionStatus.Closed; } activity.EnabledActivities[0].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener<ActivityExecutionStatusChangedEventArgs>) activity); executionContext.ExecuteActivity(activity.EnabledActivities[0]); activity.SetValue(ActiveChildQualifiedNameProperty, activity.EnabledActivities[0].QualifiedName); return ActivityExecutionStatus.Executing; }
public static ActivityExecutionStatus Execute(CompositeActivity activity, ActivityExecutionContext executionContext) { if (activity.EnabledActivities.Count == 0) { return(ActivityExecutionStatus.Closed); } activity.EnabledActivities[0].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener <ActivityExecutionStatusChangedEventArgs>)activity); executionContext.ExecuteActivity(activity.EnabledActivities[0]); activity.SetValue(ActiveChildQualifiedNameProperty, activity.EnabledActivities[0].QualifiedName); return(ActivityExecutionStatus.Executing); }
private static bool TryScheduleNextChild(CompositeActivity activity, ActivityExecutionContext executionContext) { IList <Activity> enabledActivities = activity.EnabledActivities; int num = 0; for (int i = enabledActivities.Count - 1; i >= 0; i--) { if (enabledActivities[i].ExecutionStatus == ActivityExecutionStatus.Closed) { if (i == (enabledActivities.Count - 1)) { return(false); } num = i + 1; break; } } enabledActivities[num].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener <ActivityExecutionStatusChangedEventArgs>)activity); executionContext.ExecuteActivity(enabledActivities[num]); activity.SetValue(ActiveChildQualifiedNameProperty, enabledActivities[num].QualifiedName); return(true); }
private static bool TryScheduleNextChild(CompositeActivity activity, ActivityExecutionContext executionContext) { IList<Activity> enabledActivities = activity.EnabledActivities; int num = 0; for (int i = enabledActivities.Count - 1; i >= 0; i--) { if (enabledActivities[i].ExecutionStatus == ActivityExecutionStatus.Closed) { if (i == (enabledActivities.Count - 1)) { return false; } num = i + 1; break; } } enabledActivities[num].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener<ActivityExecutionStatusChangedEventArgs>) activity); executionContext.ExecuteActivity(enabledActivities[num]); activity.SetValue(ActiveChildQualifiedNameProperty, enabledActivities[num].QualifiedName); return true; }
private static bool TryScheduleNextChild(CompositeActivity activity, ActivityExecutionContext executionContext) { IList<Activity> children = activity.EnabledActivities; // Find index of next activity to run. int indexOfNextActivity = 0; for (int i = (children.Count - 1); i >= 0; i--) { if (children[i].ExecutionStatus == ActivityExecutionStatus.Closed) { // Check whether this is last child? if (i == (children.Count - 1)) return false; indexOfNextActivity = i + 1; break; } } children[indexOfNextActivity].RegisterForStatusChange(Activity.ClosedEvent, (IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)activity); executionContext.ExecuteActivity(children[indexOfNextActivity]); activity.SetValue(ActiveChildQualifiedNameProperty, children[indexOfNextActivity].QualifiedName); return true; }