private void AddActivitySubscription(ActivityStateQuery query) { HybridCollection<ActivityStateQuery> hybrids; this.trackingRecordPreFilter.TrackActivityStateRecords = true; foreach (string str in query.States) { if (string.CompareOrdinal(str, "*") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; break; } if (string.CompareOrdinal(str, "Closed") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; } else if (string.CompareOrdinal(str, "Executing") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; } } if (this.activitySubscriptions == null) { this.activitySubscriptions = new Dictionary<string, HybridCollection<ActivityStateQuery>>(); } if (!this.activitySubscriptions.TryGetValue(query.ActivityName, out hybrids)) { hybrids = new HybridCollection<ActivityStateQuery>(); this.activitySubscriptions[query.ActivityName] = hybrids; } hybrids.Add(query); this.AddActivityName(query.ActivityName); }
private ActivityStateQuery Match(ActivityStateRecord activityStateRecord) { ActivityStateQuery query = null; if (this.activitySubscriptions != null) { //first look for a specific match, if not found, look for a generic match. if (this.activitySubscriptions.TryGetValue(activityStateRecord.Activity.Name, out var eventSubscriptions)) { query = MatchActivityState(activityStateRecord, eventSubscriptions.AsReadOnly()); } if (query == null && this.activitySubscriptions.TryGetValue("*", out eventSubscriptions)) { query = MatchActivityState(activityStateRecord, eventSubscriptions.AsReadOnly()); if ((query != null) && (this.associatedProfile.ImplementationVisibility == ImplementationVisibility.RootScope)) { if (!ShouldTrackActivity(activityStateRecord.Activity, "*")) { return(null); } } } } return(query); }
private void AddActivitySubscription(ActivityStateQuery query) { HybridCollection <ActivityStateQuery> hybrids; this.trackingRecordPreFilter.TrackActivityStateRecords = true; foreach (string str in query.States) { if (string.CompareOrdinal(str, "*") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; break; } if (string.CompareOrdinal(str, "Closed") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; } else if (string.CompareOrdinal(str, "Executing") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; } } if (this.activitySubscriptions == null) { this.activitySubscriptions = new Dictionary <string, HybridCollection <ActivityStateQuery> >(); } if (!this.activitySubscriptions.TryGetValue(query.ActivityName, out hybrids)) { hybrids = new HybridCollection <ActivityStateQuery>(); this.activitySubscriptions[query.ActivityName] = hybrids; } hybrids.Add(query); this.AddActivityName(query.ActivityName); }
private void AddActivitySubscription(ActivityStateQuery query) { this.trackingRecordPreFilter.TrackActivityStateRecords = true; foreach (var state in query.States) { if (string.CompareOrdinal(state, "*") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; break; } if (string.CompareOrdinal(state, ActivityStates.Closed) == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; } else if (string.CompareOrdinal(state, ActivityStates.Executing) == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; } } if (this.activitySubscriptions == null) { this.activitySubscriptions = new Dictionary <string, HybridCollection <ActivityStateQuery> >(); } if (!this.activitySubscriptions.TryGetValue(query.ActivityName, out var subscription)) { subscription = new HybridCollection <ActivityStateQuery>(); this.activitySubscriptions[query.ActivityName] = subscription; } subscription.Add((ActivityStateQuery)query); AddActivityName(query.ActivityName); }
//构造函数 public designerDebugTracking(WorkflowDesigner designer) { //(1) this.designer = designer; this.debugService = designer.DebugManagerView as DebuggerService; ; //(2) TrackingProfile TrackingProfile trackingProfile = new TrackingProfile(); ActivityStateQuery activityStateQuery = new ActivityStateQuery() { ActivityName = "*", States = { System.Activities.Tracking.ActivityStates.Executing }, Variables = { "*" }, Arguments = { "*" } }; trackingProfile.Queries.Add(activityStateQuery); this.TrackingProfile = trackingProfile; //(3) clearTrackInfo(); //(4) sourceLocationList = getSourceLocationMap(); activityMapList = getActivityMapList(sourceLocationList); } //end
static void ExtractArguments(ActivityStateRecord activityStateRecord, ActivityStateQuery activityStateQuery) { if (activityStateQuery.HasArguments) { activityStateRecord.Arguments = activityStateRecord.GetArguments(activityStateQuery.Arguments); } else { activityStateRecord.Arguments = ActivityUtilities.EmptyParameters; } }
static void ExtractVariables(ActivityStateRecord activityStateRecord, ActivityStateQuery activityStateQuery) { if (activityStateQuery.HasVariables) { activityStateRecord.Variables = activityStateRecord.GetVariables(activityStateQuery.Variables); } else { activityStateRecord.Variables = ActivityUtilities.EmptyParameters; } }
public void ActivityStateQueryToFormattedShouldFormat() { const string Expected = @"ActivityStateQuery { ActivityName: ActivityName Arguments { Arg1 Arg2 } QueryAnnotations { Annotation1: Annotation 1 Annotation2: Annotation 2 } States { Canceled Closed } Variables { Var1 Var2 } } "; // Arrange var asq = new ActivityStateQuery { ActivityName = "ActivityName", Arguments = { "Arg1", "Arg2" }, QueryAnnotations = { { "Annotation1", "Annotation 1" }, { "Annotation2", "Annotation 2" } }, States = { ActivityInstanceStates.Canceled, ActivityInstanceStates.Closed }, Variables = { "Var1", "Var2" } }; // Act var actual = asq.ToFormattedString(); // Assert Assert.AreEqual(Expected, actual); }
private static ActivityStateQuery MatchActivityState(ActivityStateRecord activityRecord, ReadOnlyCollection <ActivityStateQuery> subscriptions) { ActivityStateQuery query = null; for (int i = 0; i < subscriptions.Count; i++) { if (subscriptions[i].States.Contains(activityRecord.State)) { return(subscriptions[i]); } if (subscriptions[i].States.Contains("*") && (query == null)) { query = subscriptions[i]; } } return(query); }
protected override TrackingQuery NewTrackingQuery() { ActivityStateQuery query = new ActivityStateQuery { ActivityName = this.ActivityName }; foreach (StateElement element in this.States) { query.States.Add(element.Name); } foreach (VariableElement element2 in this.Variables) { query.Variables.Add(element2.Name); } foreach (ArgumentElement element3 in this.Arguments) { query.Arguments.Add(element3.Name); } return query; }
private static ActivityStateQuery MatchActivityState(ActivityStateRecord activityRecord, ReadOnlyCollection <ActivityStateQuery> subscriptions) { ActivityStateQuery genericMatch = null; for (var i = 0; i < subscriptions.Count; i++) { if (subscriptions[i].States.Contains(activityRecord.State)) { return(subscriptions[i]); } else if (subscriptions[i].States.Contains("*")) { if (genericMatch == null) { genericMatch = subscriptions[i]; } } } return(genericMatch); }
private ActivityStateQuery Match(ActivityStateRecord activityStateRecord) { ActivityStateQuery query = null; if (this.activitySubscriptions != null) { HybridCollection <ActivityStateQuery> hybrids; if (this.activitySubscriptions.TryGetValue(activityStateRecord.Activity.Name, out hybrids)) { query = MatchActivityState(activityStateRecord, hybrids.AsReadOnly()); } if ((query == null) && this.activitySubscriptions.TryGetValue("*", out hybrids)) { query = MatchActivityState(activityStateRecord, hybrids.AsReadOnly()); if (((query != null) && (this.associatedProfile.ImplementationVisibility == ImplementationVisibility.RootScope)) && !this.ShouldTrackActivity(activityStateRecord.Activity, "*")) { return(null); } } } return(query); }
private static TrackingQuery GetActivityQueryState(List<string> argumentNames, List<string> variablesNames) { ActivityStateQuery query = new ActivityStateQuery() { ActivityName = "*", States = { ActivityStates.Executing, ActivityStates.Closed } }; if (argumentNames != null) { argumentNames.Distinct().ToList().ForEach(arg => { query.Arguments.Add(arg); }); } if (variablesNames != null) { variablesNames.Distinct().ToList().ForEach(v => { query.Variables.Add(v); }); } return query; }
void AddActivitySubscription(ActivityStateQuery query) { this.trackingRecordPreFilter.TrackActivityStateRecords = true; foreach (string state in query.States) { if (string.CompareOrdinal(state, "*") == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; break; } if (string.CompareOrdinal(state, ActivityStates.Closed) == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsClosedState = true; } else if (string.CompareOrdinal(state, ActivityStates.Executing) == 0) { this.trackingRecordPreFilter.TrackActivityStateRecordsExecutingState = true; } } if (this.activitySubscriptions == null) { this.activitySubscriptions = new Dictionary<string, HybridCollection<ActivityStateQuery>>(); } HybridCollection<ActivityStateQuery> subscription; if (!this.activitySubscriptions.TryGetValue(query.ActivityName, out subscription)) { subscription = new HybridCollection<ActivityStateQuery>(); this.activitySubscriptions[query.ActivityName] = subscription; } subscription.Add((ActivityStateQuery)query); AddActivityName(query.ActivityName); }
private static void ExtractVariables(ActivityStateRecord activityStateRecord, ActivityStateQuery activityStateQuery) { if (activityStateQuery.HasVariables) { activityStateRecord.Variables = activityStateRecord.GetVariables(activityStateQuery.Variables); } else { activityStateRecord.Variables = ActivityUtilities.EmptyParameters; } }
private static void ExtractArguments(ActivityStateRecord activityStateRecord, ActivityStateQuery activityStateQuery) { if (activityStateQuery.HasArguments) { activityStateRecord.Arguments = activityStateRecord.GetArguments(activityStateQuery.Arguments); } else { activityStateRecord.Arguments = ActivityUtilities.EmptyParameters; } }
private PSWorkflowTrackingParticipant GetTrackingParticipant() { PSWorkflowTrackingParticipant pSWorkflowTrackingParticipant = new PSWorkflowTrackingParticipant(); TrackingProfile trackingProfile = new TrackingProfile(); trackingProfile.Name = "WorkflowTrackingProfile"; CustomTrackingQuery customTrackingQuery = new CustomTrackingQuery(); customTrackingQuery.Name = "*"; customTrackingQuery.ActivityName = "*"; trackingProfile.Queries.Add(customTrackingQuery); WorkflowInstanceQuery workflowInstanceQuery = new WorkflowInstanceQuery(); workflowInstanceQuery.States.Add("Started"); workflowInstanceQuery.States.Add("Completed"); workflowInstanceQuery.States.Add("Persisted"); workflowInstanceQuery.States.Add("UnhandledException"); trackingProfile.Queries.Add(workflowInstanceQuery); ActivityStateQuery activityStateQuery = new ActivityStateQuery(); activityStateQuery.ActivityName = "*"; activityStateQuery.States.Add("*"); activityStateQuery.Variables.Add("*"); trackingProfile.Queries.Add(activityStateQuery); pSWorkflowTrackingParticipant.TrackingProfile = trackingProfile; PSWorkflowTrackingParticipant pSWorkflowTrackingParticipant1 = pSWorkflowTrackingParticipant; return pSWorkflowTrackingParticipant1; }