예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 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);
     }
 }