public static IQueryable <T> AsNoFilter <T>(this IQueryable <T> query) where T : class
#endif
        {
            var queryFilterQueryable = AliasQueryFilterManager.GetFilterQueryable(query);

            return(queryFilterQueryable != null ? (IQueryable <T>)queryFilterQueryable.OriginalQuery : query);
        }
        public static AliasBaseQueryFilter Filter(this DbContext context, object key)
#endif

        {
            var filterContext = AliasQueryFilterManager.AddOrGetFilterContext(context);

            return(filterContext.GetFilter(key));
        }
        public static IQueryable <T> Filter <T>(this DbSet <T> query, params object[] keys) where T : class
#endif
        {
            var queryFilterQueryable = AliasQueryFilterManager.GetFilterQueryable(query);

            var nonQueryFilter = queryFilterQueryable != null ? (IQueryable <T>)queryFilterQueryable.OriginalQuery : query;

            var context = queryFilterQueryable != null ? queryFilterQueryable.Context : query.GetDbContext();

            var filterContext = AliasQueryFilterManager.AddOrGetFilterContext(context);

            return(filterContext.ApplyFilter(nonQueryFilter, keys));
        }
        public static AliasBaseQueryFilter Filter <T>(this DbContext context, object key, Func <IQueryable <T>, IQueryable <T> > queryFilter, bool isEnabled = true)
#endif
        {
            var filterContext = AliasQueryFilterManager.AddOrGetFilterContext(context);

            var filter = filterContext.AddFilter(key, queryFilter);

            if (isEnabled)
            {
                filter.Enable();
            }

            return(filter);
        }
Example #5
0
        public static IQueryable <T> SetFiltered <T>(this DbContext context) where T : class
#endif
        {
            var filterContext = AliasQueryFilterManager.AddOrGetFilterContext(context);

            if (filterContext.FilterSetByType.ContainsKey(typeof(T)))
            {
                var set = filterContext.FilterSetByType[typeof(T)];

                if (set.Count == 1)
                {
                    return((IQueryable <T>)set[0].DbSetProperty.GetValue(context));
                }
                throw new Exception(ExceptionMessage.QueryFilter_SetFilteredManyFound);
            }

            throw new Exception(ExceptionMessage.QueryFilter_SetFilteredNotFound);
        }
        public QueryFilterContext(DbContext context, bool isGenericContext)
#endif
        {
            if (isGenericContext)
            {
                LoadGenericContextInfo(context);
            }
            else
            {
                Context = context;
                Filters = new Dictionary <object, AliasBaseQueryFilter>();

                var genericContext = AliasQueryFilterManager.AddOrGetGenericFilterContext(context);

                FilterSetByType = genericContext.FilterSetByType;
                FilterSets      = genericContext.FilterSets;
            }
        }