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 EnlistSoapHeaders(XmlNode node, InternalMessageTraceInfo info) { if (node != null && info != null && node.HasChildNodes) { TraceDetailedProcessParameter.EnlistRecognizedElements(node, info.headers, false, 0); } }
public void ReloadMessageInfo(string messageXml) { if (!string.IsNullOrEmpty(messageXml)) { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(messageXml); XmlElement documentElement = xmlDocument.DocumentElement; InternalMessageTraceInfo info = new InternalMessageTraceInfo(); ExtractKnownInfo(documentElement, info); if (documentElement.HasChildNodes) { foreach (XmlNode childNode in documentElement.ChildNodes) { string a = Utilities.TradeOffXmlPrefixForName(childNode.Name); if (a == "Envelope") { ExtractSoapEnvelop(childNode, info); } else { EnlistProperties(childNode, info); } } } DisplayInfo(info); } catch (XmlException e) { throw new TraceViewerException(SR.GetString("FV_ERROR"), e); } } }
private void DisplayInfo(InternalMessageTraceInfo info) { if (info != null) { txtMethod.Text = info.method; txtSource.Text = info.source; txtTime.Text = info.time.ToString(dateTimeFormat, CultureInfo.CurrentUICulture); txtType.Text = info.type; foreach (TraceDetailedProcessParameter.TraceProperty property in info.properties) { listProperties.Items.Add(new ListViewItem(new string[2] { property.PropertyName, property.PropertyValue })); } foreach (TraceDetailedProcessParameter.TraceProperty parameter in info.parameters) { listParameters.Items.Add(new ListViewItem(new string[3] { parameter.PropertyName, parameter.PropertyValue, (parameter.AdditionalData == null) ? string.Empty : parameter.AdditionalData.ToString() })); } foreach (TraceDetailedProcessParameter.TraceProperty header in info.headers) { listHeaders.Items.Add(new ListViewItem(new string[2] { header.PropertyName, header.PropertyValue })); } } }
private void ExtractSoapBody(XmlNode node, InternalMessageTraceInfo info) { if (node != null && info != null && node.HasChildNodes) { info.method = node.ChildNodes[0].Name; EnlistParameters(node.ChildNodes[0], info); } }
private void EnlistParameters(XmlNode node, InternalMessageTraceInfo info) { if (node != null && info != null && node.HasChildNodes) { foreach (XmlNode childNode in node.ChildNodes) { TraceDetailedProcessParameter.TraceProperty traceProperty = new TraceDetailedProcessParameter.TraceProperty(childNode.Name, childNode.InnerText, isAttribute: false, isXmlFormat: false); if (childNode.Attributes != null && childNode.Attributes["ValueType"] != null) { traceProperty.AdditionalData = childNode.Attributes["ValueType"].Value; } info.parameters.Add(traceProperty); } } }
private void ExtractSoapEnvelop(XmlNode node, InternalMessageTraceInfo info) { if (node != null && info != null && node.HasChildNodes) { foreach (XmlNode item in node) { string a = Utilities.TradeOffXmlPrefixForName(item.Name); if (!(a == "Header")) { if (a == "Body") { ExtractSoapBody(item, info); } } else { EnlistSoapHeaders(item, info); } } } }
private void ExtractKnownInfo(XmlElement element, InternalMessageTraceInfo info) { if (element != null && element.NodeType == XmlNodeType.Element && string.Compare(element.Name, "MessageLogTraceRecord", true, CultureInfo.CurrentUICulture) == 0 && info != null) { if (element.HasAttribute("Time")) { try { info.time = DateTime.Parse(element.Attributes["Time"].Value, CultureInfo.CurrentUICulture); } catch (FormatException) { } } if (element.HasAttribute("Type")) { info.type = element.Attributes["Type"].Value; } if (element.HasAttribute("Source")) { info.source = element.Attributes["Source"].Value; } } }