private void Merge(TrackingRecordPreFilter filter) { if (!_filterValuesSetExplicitly) { // This it the first filter we are merging _filterValuesSetExplicitly = true; this.ShouldTrackActivityStateRecordsExecutingState = filter.TrackActivityStateRecordsExecutingState; this.ShouldTrackActivityScheduledRecords = filter.TrackActivityScheduledRecords; this.ShouldTrackActivityStateRecords = filter.TrackActivityStateRecords; this.ShouldTrackActivityStateRecordsClosedState = filter.TrackActivityStateRecordsClosedState; this.ShouldTrackBookmarkResumptionRecords = filter.TrackBookmarkResumptionRecords; this.ShouldTrackCancelRequestedRecords = filter.TrackCancelRequestedRecords; this.ShouldTrackFaultPropagationRecords = filter.TrackFaultPropagationRecords; this.ShouldTrackWorkflowInstanceRecords = filter.TrackWorkflowInstanceRecords; } else { this.ShouldTrackActivityStateRecordsExecutingState |= filter.TrackActivityStateRecordsExecutingState; this.ShouldTrackActivityScheduledRecords |= filter.TrackActivityScheduledRecords; this.ShouldTrackActivityStateRecords |= filter.TrackActivityStateRecords; this.ShouldTrackActivityStateRecordsClosedState |= filter.TrackActivityStateRecordsClosedState; this.ShouldTrackBookmarkResumptionRecords |= filter.TrackBookmarkResumptionRecords; this.ShouldTrackCancelRequestedRecords |= filter.TrackCancelRequestedRecords; this.ShouldTrackFaultPropagationRecords |= filter.TrackFaultPropagationRecords; this.ShouldTrackWorkflowInstanceRecords |= filter.TrackWorkflowInstanceRecords; } }
internal RuntimeTrackingProfile(TrackingProfile profile, Activity rootElement) { _associatedProfile = profile; _isRootNativeActivity = rootElement is NativeActivity; _trackingRecordPreFilter = new TrackingRecordPreFilter(); foreach (TrackingQuery query in _associatedProfile.Queries) { if (query is ActivityStateQuery) { AddActivitySubscription((ActivityStateQuery)query); } else if (query is WorkflowInstanceQuery) { AddWorkflowSubscription((WorkflowInstanceQuery)query); } else if (query is BookmarkResumptionQuery) { AddBookmarkSubscription((BookmarkResumptionQuery)query); } else if (query is CustomTrackingQuery) { AddCustomTrackingSubscription((CustomTrackingQuery)query); } else if (query is ActivityScheduledQuery) { AddActivityScheduledSubscription((ActivityScheduledQuery)query); } else if (query is CancelRequestedQuery) { AddCancelRequestedSubscription((CancelRequestedQuery)query); } else if (query is FaultPropagationQuery) { AddFaultPropagationSubscription((FaultPropagationQuery)query); } } }