public bool Evaluate(IExecutionContext executionContext, Expressions.INode tree, bool hostTracingOnly = false) { ArgUtil.NotNull(executionContext, nameof(executionContext)); ArgUtil.NotNull(tree, nameof(tree)); var expressionTrace = new TraceWriter(Trace, hostTracingOnly ? null : executionContext); return(tree.EvaluateBoolean(trace: expressionTrace, state: executionContext)); }
public bool Evaluate(IExecutionContext executionContext, string condition) { ArgUtil.NotNull(executionContext, nameof(executionContext)); // Parse the condition. var expressionTrace = new TraceWriter(executionContext); var parser = new DT.Parser(); var extensions = new DT.IFunctionInfo[] { new DT.FunctionInfo <AlwaysNode>(name: Constants.Expressions.Always, minParameters: 0, maxParameters: 0), new DT.FunctionInfo <SucceededNode>(name: Constants.Expressions.Succeeded, minParameters: 0, maxParameters: 0), new DT.FunctionInfo <SucceededOrFailedNode>(name: Constants.Expressions.SucceededOrFailed, minParameters: 0, maxParameters: 0), new DT.FunctionInfo <VariablesNode>(name: Constants.Expressions.Variables, minParameters: 1, maxParameters: 1), }; DT.INode tree = parser.CreateTree(condition, expressionTrace, extensions) ?? new SucceededNode(); // Evaluate the tree. return(tree.EvaluateBoolean(trace: expressionTrace, state: executionContext)); }