private void CreateExtracts(XmlReader reader, ExtractCollection extracts) { if (null == reader) throw new ArgumentNullException("reader"); if (null == extracts) throw new ArgumentNullException("extracts"); if (0 != string.Compare("Extracts", reader.Name, StringComparison.Ordinal)) throw new TrackingProfileDeserializationException(ExecutionStringManager.TrackingDeserializationInvalidPosition + "Extracts"); if (reader.IsEmptyElement) return; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (0 == string.Compare(reader.Name, "ActivityDataTrackingExtract", StringComparison.Ordinal)) { ActivityDataTrackingExtract e = new ActivityDataTrackingExtract(); CreateExtract(reader, e); extracts.Add(e); } else if (0 == string.Compare(reader.Name, "WorkflowDataTrackingExtract", StringComparison.Ordinal)) { WorkflowDataTrackingExtract e = new WorkflowDataTrackingExtract(); CreateExtract(reader, e); extracts.Add(e); } // // Xsd validation will catch unknown elements break; case XmlNodeType.EndElement: if (0 == string.Compare(reader.Name, "Extracts", StringComparison.Ordinal)) return; break; } } // // Only valid exit is on an EndElement that matches the element that is passed in. throw new TrackingProfileDeserializationException(ExecutionStringManager.TrackingDeserializationCloseElementNotFound + "Extracts."); }
private static void CreateAndInsertTrackingProfile() { TrackingProfile profile = new TrackingProfile(); // Create an activity track point, used for tracking data from Code Activities. ActivityTrackPoint codeActivityTrackPoint = new ActivityTrackPoint(); // Create an ActivityTrackingLocation to be added to the track point. ActivityTrackingLocation codeActivityTrackingLocation = new ActivityTrackingLocation("CodeActivity"); codeActivityTrackingLocation.MatchDerivedTypes = true; // Add the location "Closed" event to track. codeActivityTrackingLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Closed); codeActivityTrackPoint.MatchingLocations.Add(codeActivityTrackingLocation); // Create a WorkflowDataTrackingExtract for extracting data from the Balance property. WorkflowDataTrackingExtract balanceWorkflowTrackingExtract = new WorkflowDataTrackingExtract(); balanceWorkflowTrackingExtract.Member = "Balance"; // Create an activity track point, used for tracking data in the custom activity "ServiceCharge". ActivityTrackPoint customActivityTrackPoint = new ActivityTrackPoint(); ActivityTrackingLocation customActivityTrackingLocation = new ActivityTrackingLocation("ServiceCharge"); // Create an ActivityTrackingLocation to be added to the track point customActivityTrackingLocation.ExecutionStatusEvents.Add(ActivityExecutionStatus.Closed); customActivityTrackPoint.MatchingLocations.Add(customActivityTrackingLocation); // Create an ActivityDataTrackingExtract for extracting Fee property data from the ServiceCharge activity. ActivityDataTrackingExtract feeActivityTrackingExtract = new ActivityDataTrackingExtract(); feeActivityTrackingExtract.Member = "Fee"; // Add extracts to the activity tracking points. codeActivityTrackPoint.Extracts.Add(balanceWorkflowTrackingExtract); customActivityTrackPoint.Extracts.Add(feeActivityTrackingExtract); profile.ActivityTrackPoints.Add(codeActivityTrackPoint); profile.ActivityTrackPoints.Add(customActivityTrackPoint); profile.Version = new Version("3.0.0.0"); // Serialize the profile. TrackingProfileSerializer serializer = new TrackingProfileSerializer(); StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture); serializer.Serialize(writer, profile); String trackingprofile = writer.ToString(); InsertTrackingProfile(trackingprofile); }
private void cmdUpdateTrackingProfile_Click(Object sender, EventArgs e) { ConnectionStringSettings trackingConnectionString = cboTrackingService.SelectedItem as ConnectionStringSettings; // update the default tracking profile GenericTrackingProfileManager profileManager = new AdoTrackingProfileManager(trackingConnectionString); TrackingProfile trackingProfile = profileManager.GetDefaultTrackingProfile(); foreach (ActivityTrackPoint trackPoint in trackingProfile.ActivityTrackPoints) { trackPoint.Annotations.Add("Annotation added on " + DateTime.UtcNow); TrackingExtract trackingExtract = new ActivityDataTrackingExtract("Name"); trackingExtract.Annotations.Add("Tracking Data Item added on " + DateTime.UtcNow); trackPoint.Extracts.Add(trackingExtract); } trackingProfile.Version = new Version( trackingProfile.Version.Major, trackingProfile.Version.Minor + 1, 0, 0); if (profileManager.GetTrackingProfile(typeof(SequentialWorkFlow)) != null) profileManager.UpdateTrackingProfile(typeof(SequentialWorkFlow), trackingProfile); profileManager.UpdateDefaultTrackingProfile(trackingProfile); }
private void CreateExtracts(XmlReader reader, ExtractCollection extracts) { if (reader == null) { throw new ArgumentNullException("reader"); } if (extracts == null) { throw new ArgumentNullException("extracts"); } if (string.Compare("Extracts", reader.Name, StringComparison.Ordinal) != 0) { throw new TrackingProfileDeserializationException(ExecutionStringManager.TrackingDeserializationInvalidPosition + "Extracts"); } if (!reader.IsEmptyElement) { while (true) { if (!reader.Read()) { throw new TrackingProfileDeserializationException(ExecutionStringManager.TrackingDeserializationCloseElementNotFound + "Extracts."); } switch (reader.NodeType) { case XmlNodeType.Element: if (string.Compare(reader.Name, "ActivityDataTrackingExtract", StringComparison.Ordinal) == 0) { ActivityDataTrackingExtract extract = new ActivityDataTrackingExtract(); this.CreateExtract(reader, extract); extracts.Add(extract); } else if (string.Compare(reader.Name, "WorkflowDataTrackingExtract", StringComparison.Ordinal) == 0) { WorkflowDataTrackingExtract extract2 = new WorkflowDataTrackingExtract(); this.CreateExtract(reader, extract2); extracts.Add(extract2); } break; case XmlNodeType.EndElement: if (string.Compare(reader.Name, "Extracts", StringComparison.Ordinal) == 0) { return; } break; } } } }