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); }
public EvalAuditNode(PatternAgentInstanceContext context, EvalAuditFactoryNode factoryNode, EvalNode childNode) : base(context) { _factoryNode = factoryNode; _childNode = childNode; }