public TraceTreeNode GetTraceViewModel(TraceGroupViewModel tg) { TraceTreeNode vm = null; using (new DebugTracer("GetTraceViewModel")) { var items = this.Repository.GetTraceItems(tg); if (items.Count > 0) { using (new DebugTracer("FixLooseEnds")) { FixLooseEnds(items); } using (new DebugTracer("CreateTreeNodeViewModel")) { vm = CreateTreeNodeViewModel(items); } } } using (new DebugTracer("FilterThresholds")) { FilterThresholds(vm, tg); } return(vm); }
private void SetViewModel(TraceTreeNode treeNodeViewModel) { if (treeNodeViewModel != null) { treeView.BeginUpdate(); var root = new TreeModel(); treeView.Model = root; root.Nodes.Add(treeNodeViewModel); treeView.ExpandAll(); treeView.EndUpdate(); } }
private bool HasNoException(TraceTreeNode vm) { if (vm.TraceNode.Begin.IsException) { return(false); } foreach (TraceTreeNode node in vm.Nodes) { if (!HasNoException(node)) { return(false); } } return(true); }
private TraceTreeNode ConvertToTreeNodeViewModel(NodeModel bNode) { var node = new TraceTreeNode { TraceNode = bNode.TraceNode, Text = bNode.TraceNode.Description }; if (bNode.Children != null) { bNode.Children.ForEach(x => { node.Add(ConvertToTreeNodeViewModel(x)); }); } return(node); }
private void FilterThresholds(TraceTreeNode vm, TraceGroupViewModel tg) { if (vm != null && tg.ThresholdMilliseconds > 0) { bool blnRet = false; if (vm.TraceNode.TimeTakenMilliseconds < tg.ThresholdMilliseconds) { if (HasNoException(vm)) { blnRet = vm.Remove(); } } if (!blnRet) { for (var i = vm.Nodes.Count - 1; i >= 0; i--) { FilterThresholds(vm.Nodes[i] as TraceTreeNode, tg); } } } }