private bool HasAnyRelevantMessage(IMLoggerScopeNode node, IMLoggerOptions options) { var hasAnyRelevantMessage = node.Messages.Count > 0 && node.Messages.Any(ms => options.Filter("any", ms.Severity)); foreach (var nd in node.Children) { hasAnyRelevantMessage = hasAnyRelevantMessage | HasAnyRelevantMessage(nd, options); } return(hasAnyRelevantMessage); }
private int Count(IMLoggerScopeNode node) { if (node == null) { return(0); } var sum = node.Messages.Count; foreach (var child in node.Children) { sum += Count(child); } return(sum); }
private IMLoggerScopeNode CollapseHelper(IMLoggerScopeNode node) { if (node == null) { return(node); } for (int i = 0; i < node.Children.Count; i++) { node.Children[i] = CollapseHelper(node.Children[i]); } node.Children.RemoveAll(c => c == null); if (node.Children.Count == 0 && node.Messages.Count == 0) { return(null); } else { return(node); } }