private void EnlistProperties(XmlNode node, InternalMessageTraceInfo info) { if (node != null && info != null && node.HasChildNodes) { List <TraceDetailedProcessParameter.TraceProperty> list = new List <TraceDetailedProcessParameter.TraceProperty>(); TraceDetailedProcessParameter.EnlistRecognizedElements(node, list, false, 0); if (node.Name != "Properties") { foreach (TraceDetailedProcessParameter.TraceProperty item in list) { if (string.Compare(Utilities.TradeOffXmlPrefixForName(item.PropertyName), "ActivityId", true, CultureInfo.CurrentUICulture) == 0) { string text = TraceRecord.NormalizeActivityId(item.PropertyValue); if (!string.IsNullOrEmpty(text) && TraceViewerForm.IsActivityDisplayNameInCache(text)) { info.properties.Add(new TraceDetailedProcessParameter.TraceProperty(SR.GetString("FV_MSG2_LeftQ") + SR.GetString("FV_MSG2_ActivityName2") + SR.GetString("FV_MSG2_RightQ") + item.PropertyName, TraceViewerForm.GetActivityDisplayName(text), item.IsXmlAttribute, item.IsXmlFormat)); } else { info.properties.Add(new TraceDetailedProcessParameter.TraceProperty(SR.GetString("FV_MSG2_LeftQ") + "ActivityId" + SR.GetString("FV_MSG2_RightQ") + item.PropertyName, text, item.IsXmlAttribute, item.IsXmlFormat)); } } else { info.properties.Add(new TraceDetailedProcessParameter.TraceProperty(SR.GetString("FV_MSG2_LeftQ") + node.Name + SR.GetString("FV_MSG2_RightQ") + item.PropertyName, item.PropertyValue, item.IsXmlAttribute, item.IsXmlFormat)); } } } else { info.properties.AddRange(list); } } }
private void AssignHeaderInfo(InternalMessageHeaders headers, string headerName, string value) { if (headers != null && !string.IsNullOrEmpty(headerName) && !string.IsNullOrEmpty(value)) { switch (headerName) { case "MessageID": headers.messageId = value; break; case "RelatesTo": headers.relatesTo = value; break; case "ActivityId": headers.activityId = TraceRecord.NormalizeActivityId(value); break; case "Action": headers.action = value; break; case "ReplyTo": headers.replyTo = value; break; case "To": headers.to = value; break; case "From": headers.from = value; break; } } }
public static void EnlistRecognizedElements(XmlNode node, List <TraceProperty> listProperty, bool ignoreSubTreeNodes, int depth) { if (depth < 10 && node != null && !ExcludedXmlNodes.Contains(node.Name)) { string text = Utilities.TradeOffXmlPrefixForName(node.Name); if (ignoreSubTreeNodes && SubTreeRootXmlNodes.Contains(text) && SubTreeRootXmlNodeValidator(node, text)) { listProperty.Add(new TraceProperty(node.Name, node.OuterXml, isAttribute: false, isXmlFormat: true)); } else { if (node.Attributes != null) { foreach (XmlAttribute attribute in node.Attributes) { if (!ExcludedXmlAttributes.Contains(Utilities.TradeOffXmlPrefixForName(attribute.Name))) { listProperty.Add(new TraceProperty(SR.GetString("FV_MSG2_LeftQ") + node.Name + SR.GetString("FV_MSG2_RightQ") + attribute.Name, attribute.Value, isAttribute: false, isXmlFormat: false)); } } } if (node.HasChildNodes) { foreach (XmlNode childNode in node.ChildNodes) { if (string.Compare(childNode.Name, "#text", true, CultureInfo.CurrentUICulture) == 0 && !string.IsNullOrEmpty(childNode.Value)) { if (string.Compare(Utilities.TradeOffXmlPrefixForName(node.Name), "ActivityId", true, CultureInfo.CurrentUICulture) == 0) { string text2 = TraceRecord.NormalizeActivityId(childNode.InnerText); if (!string.IsNullOrEmpty(text2) && TraceViewerForm.IsActivityDisplayNameInCache(text2)) { listProperty.Add(new TraceProperty(SR.GetString("FV_Basic_ActivityName"), TraceViewerForm.GetActivityDisplayName(text2), isAttribute: false, isXmlFormat: false)); } else { listProperty.Add(new TraceProperty(SR.GetString("FV_Basic_ActivityID"), text2, isAttribute: false, isXmlFormat: false)); } } else { listProperty.Add(new TraceProperty(node.Name, childNode.InnerText, isAttribute: false, isXmlFormat: false)); } } else { EnlistRecognizedElements(childNode, listProperty, ignoreSubTreeNodes, depth + 1); } } } else if (!string.IsNullOrEmpty(node.Value) && !ExcludedXmlNodes.Contains(Utilities.TradeOffXmlPrefixForName(node.Name))) { if (string.Compare(Utilities.TradeOffXmlPrefixForName(node.Name), "ActivityId", true, CultureInfo.CurrentUICulture) == 0) { listProperty.Add(new TraceProperty(node.Name, TraceViewerForm.GetActivityDisplayName(TraceRecord.NormalizeActivityId(node.InnerText)), isAttribute: false, isXmlFormat: false)); } else { listProperty.Add(new TraceProperty(node.Name, node.Value, isAttribute: false, isXmlFormat: false)); } } } } }
public void ReloadTrace(TraceRecord trace) { CleanUp(); if (trace != null) { ListViewItem listViewItem = null; string text = TraceRecord.NormalizeActivityId(trace.ActivityID); listViewItem = ((!TraceViewerForm.IsActivityDisplayNameInCache(text)) ? new ListViewItem(new string[2] { SR.GetString("FV_Basic_ActivityID"), text }) : new ListViewItem(new string[2] { SR.GetString("FV_Basic_ActivityName"), TraceViewerForm.GetActivityDisplayName(text) })); listView.Items.Add(listViewItem); if (trace.IsTransfer && !string.IsNullOrEmpty(trace.RelatedActivityID)) { string text2 = TraceRecord.NormalizeActivityId(trace.RelatedActivityID); listViewItem = ((!TraceViewerForm.IsActivityDisplayNameInCache(text2)) ? new ListViewItem(new string[2] { SR.GetString("FV_Basic_RelatedActivityID"), text2 }) : new ListViewItem(new string[2] { SR.GetString("FV_Basic_RelatedActivityName"), TraceViewerForm.GetActivityDisplayName(text2) })); listView.Items.Add(listViewItem); } listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Time"), trace.Time.ToString(dateTimeFormat, CultureInfo.CurrentUICulture) }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Level"), trace.Level.ToString() }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Source"), trace.SourceName }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Process"), trace.ProcessName }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Thread"), trace.ThreadId.ToString(CultureInfo.CurrentCulture) }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_Computer"), (trace.Execution != null) ? trace.Execution.ComputerName : string.Empty }); listView.Items.Add(listViewItem); listViewItem = new ListViewItem(new string[2] { SR.GetString("FV_Basic_TraceIdentifier"), trace.TraceCode }); listView.Items.Add(listViewItem); } }
private void EnlistMessageHeadersTree(XmlNode xmlNode, TreeNode treeNode, InternalMessageHeaders headers, int depth) { if (depth < 10 && xmlNode != null && treeNode != null && !TraceDetailedProcessParameter.ExcludedXmlNodes.Contains(Utilities.TradeOffXmlPrefixForName(xmlNode.Name))) { if (xmlNode.Attributes != null) { foreach (XmlAttribute attribute in xmlNode.Attributes) { if (!TraceDetailedProcessParameter.ExcludedXmlAttributes.Contains(Utilities.TradeOffXmlPrefixForName(attribute.Name))) { treeNode.Nodes.Add(SR.GetString("FV_PROPERTY_HEADER") + attribute.Name + SR.GetString("FV_EQUAL") + attribute.Value); } } } string text = Utilities.TradeOffXmlPrefixForName(xmlNode.Name); bool flag = false; bool flag2 = false; string b = null; if (generalPropertyNodeValuePair.ContainsKey(text)) { flag = true; if (generalPropertyNodeValuePair[text] == "this") { flag2 = true; } else { b = generalPropertyNodeValuePair[text]; } } if (xmlNode.HasChildNodes) { foreach (XmlNode childNode in xmlNode.ChildNodes) { if (string.Compare(childNode.Name, "#text", true, CultureInfo.CurrentUICulture) == 0 && !string.IsNullOrEmpty(childNode.Value)) { if (string.Compare(Utilities.TradeOffXmlPrefixForName(xmlNode.Name), "ActivityId", true, CultureInfo.CurrentUICulture) == 0) { string text2 = TraceRecord.NormalizeActivityId(xmlNode.ChildNodes[0].Value); if (!string.IsNullOrEmpty(text2) && TraceViewerForm.IsActivityDisplayNameInCache(text2)) { treeNode.Text = SR.GetString("FV_MSG2_ActivityName2") + SR.GetString("FV_EQUAL") + TraceViewerForm.GetActivityDisplayName(text2); } else { treeNode.Text = "ActivityId" + SR.GetString("FV_EQUAL") + text2; } } else { treeNode.Text = xmlNode.Name + SR.GetString("FV_EQUAL") + xmlNode.ChildNodes[0].Value; } if (flag && flag2) { AssignHeaderInfo(headers, text, childNode.Value); } } else { TreeNode treeNode2 = new TreeNode(childNode.Name); treeNode.Nodes.Add(treeNode2); EnlistMessageHeadersTree(childNode, treeNode2, headers, depth + 1); if (flag && Utilities.TradeOffXmlPrefixForName(childNode.Name) == b && childNode.HasChildNodes) { foreach (XmlNode childNode2 in childNode.ChildNodes) { if (string.Compare(childNode2.Name, "#text", true, CultureInfo.CurrentUICulture) == 0 && !string.IsNullOrEmpty(childNode2.Value)) { AssignHeaderInfo(headers, text, childNode2.Value); } } } } } } else if (!string.IsNullOrEmpty(xmlNode.Value) && !TraceDetailedProcessParameter.ExcludedXmlNodes.Contains(Utilities.TradeOffXmlPrefixForName(xmlNode.Name))) { if (string.Compare(Utilities.TradeOffXmlPrefixForName(xmlNode.Name), "ActivityId", true, CultureInfo.CurrentUICulture) == 0) { string text3 = TraceRecord.NormalizeActivityId(xmlNode.ChildNodes[0].Value); if (!string.IsNullOrEmpty(text3) && TraceViewerForm.IsActivityDisplayNameInCache(text3)) { treeNode.Text = SR.GetString("FV_MSG2_ActivityName2") + SR.GetString("FV_EQUAL") + TraceViewerForm.GetActivityDisplayName(text3); } else { treeNode.Text = "ActivityId" + SR.GetString("FV_EQUAL") + text3; } } else { treeNode.Text = xmlNode.Name + SR.GetString("FV_EQUAL") + xmlNode.ChildNodes[0].Value; } } } }