Beispiel #1
0
        public SqlExpression <From> Filter <From>(IRequest request, ISqlExpression expr, IQuery model)
        {
            if (QueryFilters == null)
            {
                return((SqlExpression <From>)expr);
            }

            QueryFilterDelegate filterFn = null;

            if (!QueryFilters.TryGetValue(model.GetType(), out filterFn))
            {
                foreach (var type in model.GetType().GetInterfaces())
                {
                    if (QueryFilters.TryGetValue(type, out filterFn))
                    {
                        break;
                    }
                }
            }

            if (filterFn != null)
            {
                return((SqlExpression <From>)(filterFn(request, expr, model) ?? expr));
            }

            return((SqlExpression <From>)expr);
        }
Beispiel #2
0
        public SqlExpression <From> Filter <From>(ISqlExpression q, IQueryDb dto, IRequest req)
        {
            if (QueryFilters == null)
            {
                return((SqlExpression <From>)q);
            }

            QueryFilterDelegate filterFn = null;

            if (!QueryFilters.TryGetValue(dto.GetType(), out filterFn))
            {
                foreach (var type in dto.GetType().GetInterfaces())
                {
                    if (QueryFilters.TryGetValue(type, out filterFn))
                    {
                        break;
                    }
                }
            }

            if (filterFn != null)
            {
                filterFn(q, dto, req);
            }

            return((SqlExpression <From>)q);
        }
 public GridSearchResponseBuilder(GridSearchRequestDto request)
 {
     _request             = request;
     _enableFilters       = new List <IEntityQueryFilter>();
     _disableFilters      = new List <Type>();
     _keywordConditions   = new List <Expression <Func <TEntity, bool> > >();
     _customQueryFilters  = new List <QueryFilterDelegate>();
     _customQuerySorter   = null;
     _customColumnFilters = new Dictionary <string, QueryColumnFilterDelegate>();
 }
        public ISqlExpression Filter(ISqlExpression q, IQueryDb dto, IRequest req)
        {
            if (QueryFilters == null)
            {
                return(q);
            }

            QueryFilterDelegate filterFn = null;

            if (!QueryFilters.TryGetValue(dto.GetType(), out filterFn))
            {
                foreach (var type in dto.GetType().GetInterfaces())
                {
                    if (QueryFilters.TryGetValue(type, out filterFn))
                    {
                        break;
                    }
                }
            }

            filterFn?.Invoke(q, dto, req);

            return(q);
        }
 SortQuery(QueryFilterDelegate sortFunc)
 {
     _customQuerySorter = sortFunc;
     return(this);
 }
 FilterQuery(QueryFilterDelegate filterFunc)
 {
     _customQueryFilters.Add(filterFunc);
     return(this);
 }