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); } }
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 OnTransactionComplete(NativeActivityContext context, Bookmark bookmark, object state) { System.Activities.ActivityInstance activityInstance = this.nestedScopeTimeoutActivityInstance.Get(context); if (activityInstance != null) { context.CancelChild(activityInstance); } }
void OnTransactionComplete(NativeActivityContext context, Bookmark bookmark, object state) { Fx.Assert(this.delayWasScheduled.Get(context), "Internal error..Delay should have been scheduled if we are here"); ActivityInstance delayActivityInstance = this.nestedScopeTimeoutActivityInstance.Get(context); if (delayActivityInstance != null) { context.CancelChild(delayActivityInstance); } }
protected override void Cancel(NativeActivityContext context) { Console.WriteLine("Cancel"); if (context.IsCancellationRequested) { Console.WriteLine("IsCancellationRequested"); foreach (ActivityInstance instance in scheduledChildren.Get(context).Values) { Console.WriteLine( "Cancel scheduled child: {0}", instance.Activity.DisplayName); context.CancelChild(instance); } } }
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); } }
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 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 OnResumeBookmark(NativeActivityContext context, Bookmark bookmark, object value) { PSActivity._structuredTracer.Correlate(); if (!this.bookmarking.Get(context)) { NoPersistHandle noPersistHandle = this.noPersistHandle.Get(context); noPersistHandle.Exit(context); } ActivityOnResumeAction activityOnResumeAction = ActivityOnResumeAction.Resume; if (value != null && (ActivityOnResumeAction)value.GetType() == typeof(ActivityOnResumeAction)) { activityOnResumeAction = (ActivityOnResumeAction)value; } if (activityOnResumeAction != ActivityOnResumeAction.Restart) { PSResumableActivityContext pSResumableActivityContext = null; if (value != null && value.GetType() == typeof(PSResumableActivityContext)) { pSResumableActivityContext = (PSResumableActivityContext)value; } if (pSResumableActivityContext == null) { PSActivityContext item = null; PSDataCollection<ProgressRecord> progressRecords = null; try { if (this.bookmarking.Get(context)) { HostParameterDefaults extension = context.GetExtension<HostParameterDefaults>(); if (extension != null && extension != null && extension.AsyncExecutionCollection != null) { Dictionary<string, PSActivityContext> asyncExecutionCollection = extension.AsyncExecutionCollection; if (asyncExecutionCollection != null && asyncExecutionCollection.ContainsKey(context.ActivityInstanceId)) { item = asyncExecutionCollection[context.ActivityInstanceId]; asyncExecutionCollection.Remove(context.ActivityInstanceId); } } if (item != null) { progressRecords = item.progress; if (base.Result.Expression != null) { base.Result.Set(context, item.Output); } } } else { progressRecords = this.PSProgress.Get(context); item = this.psActivityContextImplementationVariable.Get(context); this.psActivityContextImplementationVariable.Set(context, null); HostParameterDefaults hostParameterDefault = context.GetExtension<HostParameterDefaults>(); if (hostParameterDefault != null && hostParameterDefault != null && hostParameterDefault.AsyncExecutionCollection != null) { Dictionary<string, PSActivityContext> strs = hostParameterDefault.AsyncExecutionCollection; if (strs != null && strs.ContainsKey(context.ActivityInstanceId)) { strs.Remove(context.ActivityInstanceId); } } } if (item.runningCancelTimer != null) { context.CancelChild(item.runningCancelTimer); } if (item.exceptions.Count <= 0) { this.ActivityEndPersistence(context); if (!item.Failed) { this.WriteProgressRecord(context, progressRecords, Resources.CompletedString, ProgressRecordType.Completed); } else { this.WriteProgressRecord(context, progressRecords, Resources.FailedString, ProgressRecordType.Completed); } } else { this.WriteProgressRecord(context, progressRecords, Resources.FailedString, ProgressRecordType.Completed); this.Tracer.WriteMessage("PSActivity", "OnResumeBookmark", context.WorkflowInstanceId, "We are about to rethrow the exception in order to preserve the stack trace writing it into the logs.", new string[0]); this.Tracer.TraceException(item.exceptions[0]); throw item.exceptions[0]; } } finally { if (item != null) { item.Dispose(); } } return; } else { HostParameterDefaults extension1 = context.GetExtension<HostParameterDefaults>(); if (extension1 != null) { if (pSResumableActivityContext.SupportDisconnectedStreams && pSResumableActivityContext.Streams != null) { this.PopulateSteamsData(pSResumableActivityContext, context, extension1); } PSDataCollection<ProgressRecord> item1 = null; if (this.PSProgress.Expression == null) { if (extension1.Parameters["PSProgress"] != null && extension1.Parameters["PSProgress"].GetType() == typeof(PSDataCollection<ProgressRecord>)) { item1 = extension1.Parameters["PSProgress"] as PSDataCollection<ProgressRecord>; } } else { item1 = this.PSProgress.Get(context); } if (pSResumableActivityContext.Error == null) { this.ActivityEndPersistence(context); if (!pSResumableActivityContext.Failed) { this.WriteProgressRecord(context, item1, Resources.CompletedString, ProgressRecordType.Completed); } else { this.WriteProgressRecord(context, item1, Resources.FailedString, ProgressRecordType.Completed); return; } } else { this.WriteProgressRecord(context, item1, Resources.FailedString, ProgressRecordType.Completed); this.Tracer.WriteMessage("PSActivity", "OnResumeBookmark", context.WorkflowInstanceId, "We are about to rethrow the exception in order to preserve the stack trace writing it into the logs.", new string[0]); this.Tracer.TraceException(pSResumableActivityContext.Error); throw pSResumableActivityContext.Error; } } return; } } else { this.Execute(context); return; } }