private void TrackWorkflowInstanceAbortedRecord(WorkflowInstanceRecord record) { WorkflowInstanceAbortedRecord aborted = record as WorkflowInstanceAbortedRecord; if (aborted.WorkflowDefinitionIdentity == null) { if (WfEtwTrackingEventSource.Instance.WorkflowInstanceAbortedRecordIsEnabled()) { WfEtwTrackingEventSource.Instance.WorkflowInstanceAbortedRecord(aborted.InstanceId, aborted.RecordNumber, aborted.EventTime, aborted.ActivityDefinitionId, aborted.Reason, aborted.HasAnnotations ? JsonConvert.SerializeObject(aborted.Annotations, Formatting.Indented) : emptyItemsTag, this.TrackingProfile == null ? string.Empty : this.TrackingProfile.Name, this.ApplicationReference); } } else { if (WfEtwTrackingEventSource.Instance.WorkflowInstanceAbortedRecordWithIdIsEnabled()) { WfEtwTrackingEventSource.Instance.WorkflowInstanceAbortedRecordWithId(aborted.InstanceId, aborted.RecordNumber, aborted.EventTime, aborted.ActivityDefinitionId, aborted.Reason, aborted.HasAnnotations ? JsonConvert.SerializeObject(aborted.Annotations, Formatting.Indented) : emptyItemsTag, this.TrackingProfile == null ? string.Empty : this.TrackingProfile.Name == null ? string.Empty : this.TrackingProfile.Name, aborted.WorkflowDefinitionIdentity.ToString(), this.ApplicationReference); } } }
public void PushDataToTraceManager(TrackingRecord data) { if (this.PushToTrackingDataManager != true) { return; } TraceEventType eventType = TraceEventType.Information; if (data is ActivityScheduledRecord) { ActivityScheduledRecord record = (ActivityScheduledRecord)data; string displayName = record.Child.Name; if (this.TestTraceManager.TraceFilter.Contains(displayName)) { return; } AddActivityTrace(eventType, record.InstanceId, displayName, ActivityInstanceState.Executing, record); } else if (data is ActivityStateRecord) { ActivityStateRecord record = (ActivityStateRecord)data; if (TryConvertToEnum(record.State, out ActivityInstanceState state)) { string displayName = record.Activity.Name; if (this.TestTraceManager.TraceFilter.Contains(displayName)) { return; } AddActivityTrace(eventType, record.InstanceId, displayName, state, record); } } else if (data is WorkflowInstanceAbortedRecord) { WorkflowInstanceAbortedRecord record = (WorkflowInstanceAbortedRecord)data; AddWorkflowInstanceAbortedTrace(eventType, record.InstanceId, record.Reason); } //else if (data is WorkflowInstanceUpdatedRecord) //{ // WorkflowInstanceUpdatedRecord record = (WorkflowInstanceUpdatedRecord)data; // AddWorkflowInstanceUpdatedTrace(eventType, record.InstanceId, record.OriginalDefinitionIdentity, record.WorkflowDefinitionIdentity, record.State, record.BlockingActivities, record.IsSuccessful); //} else if (data is WorkflowInstanceRecord) { WorkflowInstanceRecord record = (WorkflowInstanceRecord)data; WorkflowInstanceState state = (WorkflowInstanceState)Enum.Parse(typeof(WorkflowInstanceState), record.State); //these are new states that got added as part of the DCR = 109342, we do not contain them in the expceted states, hence //explicitly removing them. have separate test cases to test the states. if ((state == WorkflowInstanceState.Suspended) || (state == WorkflowInstanceState.Unsuspended)) { return; } AddWorkflowInstanceTrace(eventType, record.InstanceId, record.WorkflowDefinitionIdentity, state); } else if (data is BookmarkResumptionRecord record) { AddBookmarkResumptionTrace(eventType, record.InstanceId, record.Owner.Name, record.BookmarkName, record.BookmarkScope); } }