Exemplo n.º 1
0
        private static EvalFactoryNode RecursiveAddAuditNode(
            EvalFactoryNode parentNode,
            bool auditPattern,
            bool auditPatternInstance,
            EvalFactoryNode evalNode,
            EvalAuditInstanceCount instanceCount)
        {
            var writer = new StringWriter();

            evalNode.ToEPL(writer, PatternExpressionPrecedenceEnum.MINIMUM);
            var expressionText         = writer.ToString();
            var filterChildNonQuitting = parentNode != null && parentNode.IsFilterChildNonQuitting;
            var audit = new EvalAuditFactoryNode(
                auditPattern, auditPatternInstance, expressionText, instanceCount, filterChildNonQuitting);

            audit.AddChildNode(evalNode);

            IList <EvalFactoryNode> newChildNodes = new List <EvalFactoryNode>();

            foreach (var child in evalNode.ChildNodes)
            {
                newChildNodes.Add(
                    RecursiveAddAuditNode(evalNode, auditPattern, auditPatternInstance, child, instanceCount));
            }

            evalNode.ChildNodes.Clear();
            evalNode.AddChildNodes(newChildNodes);

            return(audit);
        }
Exemplo n.º 2
0
 public EvalAuditNode(PatternAgentInstanceContext context, EvalAuditFactoryNode factoryNode, EvalNode childNode)
     : base(context)
 {
     _factoryNode = factoryNode;
     _childNode   = childNode;
 }