private void OnBranchComplete(NativeActivityContext context, ActivityInstance completedInstance) { PickState pickState = this.pickStateVariable.Get(context); ReadOnlyCollection <ActivityInstance> executingChildren = context.GetChildren(); switch (completedInstance.State) { case ActivityInstanceState.Closed: pickState.HasBranchCompletedSuccessfully = true; break; case ActivityInstanceState.Canceled: case ActivityInstanceState.Faulted: if (context.IsCancellationRequested) { if (executingChildren.Count == 0 && !pickState.HasBranchCompletedSuccessfully) { // All of the branches are complete and we haven't had a single // one complete successfully and we've been asked to cancel. context.MarkCanceled(); context.RemoveAllBookmarks(); } } break; } //the last branch should always resume action bookmark if it's still there if (executingChildren.Count == 1 && pickState.ExecuteActionBookmark != null) { ResumeExecutionActionBookmark(pickState, context); } }
private void OnTriggerComplete(NativeActivityContext context, Bookmark bookmark, object state) { PickState pickState = this.pickStateVariable.Get(context); string winningBranch = (string)state; ReadOnlyCollection <ActivityInstance> children = context.GetChildren(); bool resumeAction = true; for (int i = 0; i < children.Count; i++) { ActivityInstance child = children[i]; if (child.Id != winningBranch) { context.CancelChild(child); resumeAction = false; } } if (resumeAction) { ResumeExecutionActionBookmark(pickState, context); } }
private void OnBranchComplete(NativeActivityContext context, System.Activities.ActivityInstance completedInstance) { PickState pickState = this.pickStateVariable.Get(context); ReadOnlyCollection <System.Activities.ActivityInstance> children = context.GetChildren(); switch (completedInstance.State) { case ActivityInstanceState.Closed: pickState.HasBranchCompletedSuccessfully = true; break; case ActivityInstanceState.Canceled: case ActivityInstanceState.Faulted: if ((context.IsCancellationRequested && (children.Count == 0)) && !pickState.HasBranchCompletedSuccessfully) { context.MarkCanceled(); context.RemoveAllBookmarks(); } break; } if ((children.Count == 1) && (pickState.ExecuteActionBookmark != null)) { this.ResumeExecutionActionBookmark(pickState, context); } }
private void OnTriggerComplete(NativeActivityContext context, Bookmark bookmark, object state) { var pickState = this.pickStateVariable.Get(context); var winningBranch = (string)state; var children = context.GetChildren(); var resumeAction = true; for (var i = 0; i < children.Count; i++) { var child = children[i]; if (child.Id != winningBranch) { context.CancelChild(child); resumeAction = false; } } if (resumeAction) { ResumeExecutionActionBookmark(pickState, context); } }
protected override void OnHasCompleted(NativeActivityContext context, ActivityInstance completedInstance) { base.OnHasCompleted(context, completedInstance); //HACK:重写并行节点满足条件退出逻辑 var e = context.GetExtension<ParallelExtension>(); e.Cancelled(context.GetChildren() .Where(o => o.ID != completedInstance.ID) .Select(o => o.ID) .ToArray()); }
protected override void OnHasCompleted(NativeActivityContext context, ActivityInstance completedInstance) { base.OnHasCompleted(context, completedInstance); //HACK:重写并行节点满足条件退出逻辑 var e = context.GetExtension <ParallelExtension>(); e.Cancelled(context.GetChildren() .Where(o => o.ID != completedInstance.ID) .Select(o => o.ID) .ToArray()); }
private void PrepareForExit(NativeActivityContext context, string targetStateId) { ReadOnlyCollection <System.Activities.ActivityInstance> children = context.GetChildren(); base.Result.Set(context, targetStateId); this.isExiting.Set(context, true); if (children.Count > 0) { context.CancelChildren(); } else { this.ScheduleExit(context); } }
void PrepareForExit(NativeActivityContext context, string targetStateId) { ReadOnlyCollection<ActivityInstance> children = context.GetChildren(); this.Result.Set(context, targetStateId); this.isExiting.Set(context, true); if (children.Count > 0) { // Cancel all other pending triggers. context.CancelChildren(); } else { this.ScheduleExit(context); } }
void PrepareForExit(NativeActivityContext context, string targetStateId) { Debug.Assert(!this.hasRunningChildState.Get(context), "There should not be any running child state."); ReadOnlyCollection <ActivityInstance> children = context.GetChildren(); this.Result.Set(context, targetStateId); this.isExiting.Set(context, true); if (children.Count > 0) { // Cancel all other pending triggers. context.CancelChildren(); } else { ScheduleExit(context); } }
private void OnTriggerComplete(NativeActivityContext context, Bookmark bookmark, object state) { PickState pickState = this.pickStateVariable.Get(context); string str = (string)state; ReadOnlyCollection <System.Activities.ActivityInstance> children = context.GetChildren(); bool flag = true; for (int i = 0; i < children.Count; i++) { System.Activities.ActivityInstance activityInstance = children[i]; if (activityInstance.Id != str) { context.CancelChild(activityInstance); flag = false; } } if (flag) { this.ResumeExecutionActionBookmark(pickState, context); } }
private void OnBranchComplete(NativeActivityContext context, System.Activities.ActivityInstance completedInstance) { PickState pickState = this.pickStateVariable.Get(context); ReadOnlyCollection<System.Activities.ActivityInstance> children = context.GetChildren(); switch (completedInstance.State) { case ActivityInstanceState.Closed: pickState.HasBranchCompletedSuccessfully = true; break; case ActivityInstanceState.Canceled: case ActivityInstanceState.Faulted: if ((context.IsCancellationRequested && (children.Count == 0)) && !pickState.HasBranchCompletedSuccessfully) { context.MarkCanceled(); context.RemoveAllBookmarks(); } break; } if ((children.Count == 1) && (pickState.ExecuteActionBookmark != null)) { this.ResumeExecutionActionBookmark(pickState, context); } }
void OnTriggerComplete(NativeActivityContext context, Bookmark bookmark, object state) { PickState pickState = this.pickStateVariable.Get(context); string winningBranch = (string)state; ReadOnlyCollection<ActivityInstance> children = context.GetChildren(); bool resumeAction = true; for (int i = 0; i < children.Count; i++) { ActivityInstance child = children[i]; if (child.Id != winningBranch) { context.CancelChild(child); resumeAction = false; } } if (resumeAction) { ResumeExecutionActionBookmark(pickState, context); } }
void OnBranchComplete(NativeActivityContext context, ActivityInstance completedInstance) { PickState pickState = this.pickStateVariable.Get(context); ReadOnlyCollection<ActivityInstance> executingChildren = context.GetChildren(); switch (completedInstance.State) { case ActivityInstanceState.Closed: pickState.HasBranchCompletedSuccessfully = true; break; case ActivityInstanceState.Canceled: case ActivityInstanceState.Faulted: if (context.IsCancellationRequested) { if (executingChildren.Count == 0 && !pickState.HasBranchCompletedSuccessfully) { // All of the branches are complete and we haven't had a single // one complete successfully and we've been asked to cancel. context.MarkCanceled(); context.RemoveAllBookmarks(); } } break; } //the last branch should always resume action bookmark if it's still there if (executingChildren.Count == 1 && pickState.ExecuteActionBookmark != null) { ResumeExecutionActionBookmark(pickState, context); } }
private void OnTriggerComplete(NativeActivityContext context, Bookmark bookmark, object state) { PickState pickState = this.pickStateVariable.Get(context); string str = (string) state; ReadOnlyCollection<System.Activities.ActivityInstance> children = context.GetChildren(); bool flag = true; for (int i = 0; i < children.Count; i++) { System.Activities.ActivityInstance activityInstance = children[i]; if (activityInstance.Id != str) { context.CancelChild(activityInstance); flag = false; } } if (flag) { this.ResumeExecutionActionBookmark(pickState, context); } }