private XElement GenerateElementForPerformanceCounter( SummaryPerformanceData counter, SummaryPerformanceData parent) { XElement result = new XElement("counter"); result.Add(new XAttribute("name", counter.Name)); double percentage; if (parent == null) { percentage = 100; } else { percentage = GetPercentage(parent.SummarySpan, counter.SummarySpan); } result.Add(new XAttribute("Percentage", percentage)); result.Add(new XAttribute("TotalTime", counter.SummarySpan)); foreach (SummaryPerformanceData child in GetChildren(counter)) { result.Add(GenerateElementForPerformanceCounter(child, counter)); } return(result); }
public XElement ExportToXml() { SummaryPerformanceData root = SumMap.First(m => String.IsNullOrEmpty(m.Value.ParentName)).Value; XElement element = GenerateElementForPerformanceCounter(root, null); return(element); }
private IEnumerable <SummaryPerformanceData> GetChildren(SummaryPerformanceData parent) { return(SumMap.Where(v => v.Value.ParentName.Equals(parent.Name, StringComparison.OrdinalIgnoreCase)) .Select(v => v.Value)); }