Exemple #1
0
        public LegacyFilter(string name, IEnumerable <IFilterExpression> includeRules, IEnumerable <IFilterExpression> excludeRules)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            if (String.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentException("Value must not be null or whitespace", nameof(name));
            }

            Name           = name;
            m_IncludeRules = includeRules?.ToImmutableList() ?? throw new ArgumentNullException(nameof(includeRules));
            m_ExcludeRules = excludeRules?.ToImmutableList() ?? throw new ArgumentNullException(nameof(excludeRules));

            var rootExpression = new AndFilterExpression(
                new OrFilterExpression(includeRules),
                new NotFilterExpression(new OrFilterExpression(excludeRules)));

            m_Evaluator = new ExpressionEvaluationVisitor(rootExpression);
        }
Exemple #2
0
 public Filter(string name, IFilterExpression rootExpression)
 {
     Name           = name ?? throw new ArgumentNullException(nameof(name));
     RootExpression = rootExpression ?? throw new ArgumentNullException(nameof(rootExpression));
     m_Evaluator    = new ExpressionEvaluationVisitor(this.RootExpression);
 }