Пример #1
0
        public override FilteringExpression ToFilteringExpression(ParameterExpression parameterExpression)
        {
            var filteringExpressions = Filters.Select(x => x.ToFilteringExpression(parameterExpression)).ToList();

            FilteringExpression filteringExpression = null;

            foreach (var currentExpression in filteringExpressions)
            {
                if (filteringExpression == null)
                {
                    filteringExpression = currentExpression;
                    continue;
                }

                filteringExpression = filteringExpression.ConnectTo(currentExpression);
            }

            return(filteringExpression.WithLogicalConnection(LogicalConnection.GetExpression()));
        }
Пример #2
0
        public SimpleFilter(LogicalConnection logicalConnection, string propertyName, FilteringOperator filteringOperator, object searchValue)
        {
            if (string.IsNullOrWhiteSpace(propertyName))
            {
                throw new ArgumentException($"{propertyName} can not be empty", nameof(propertyName));
            }

            if (filteringOperator == null)
            {
                throw new ArgumentNullException(nameof(filteringOperator));
            }

            if (logicalConnection == null)
            {
                throw new ArgumentNullException(nameof(logicalConnection));
            }

            PropertyName      = propertyName;
            Operator          = filteringOperator;
            SearchValue       = searchValue;
            LogicalConnection = logicalConnection;
        }
Пример #3
0
 public abstract Filter WithLogicalConnection(LogicalConnection logicalConnection);
Пример #4
0
 public override Filter WithLogicalConnection(LogicalConnection logicalConnection)
 {
     return(new ScopedFilter(logicalConnection, Filters.ToArray()));
 }
Пример #5
0
 public ScopedFilter(LogicalConnection logicalConnection, params Filter[] filters)
 {
     LogicalConnection = logicalConnection;
     Filters           = filters;
 }
Пример #6
0
 public override Filter WithLogicalConnection(LogicalConnection logicalConnection)
 {
     return(new SimpleFilter(logicalConnection, PropertyName, Operator, SearchValue));
 }