Esempio n. 1
0
        public QueryFilter(AliasQueryFilterContext ownerFilterContext, Func <IQueryable <T>, IQueryable <T> > filter)
#endif
        {
            ElementType        = typeof(T);
            Filter             = filter;
            OwnerFilterContext = ownerFilterContext;
        }
Esempio n. 2
0
        /// <summary>Makes a deep copy of this filter.</summary>
        /// <param name="filterContext">The filter context that owns the filter copy.</param>
        /// <returns>A copy of this filter.</returns>
        public override AliasBaseQueryFilter Clone(AliasQueryFilterContext filterContext)
        {
#if EF6
            return(new QueryDbSetFilter <T>(filterContext, Filter));
#else
            return(new QueryFilter <T>(filterContext, Filter));
#endif
        }
Esempio n. 3
0
        /// <summary>Adds or get the filter context associated with the context.</summary>
        /// <param name="context">The context associated with the filter context.</param>
        /// <returns>The filter context associated with the context.</returns>
        public static AliasQueryFilterContext AddOrGetFilterContext(DbContext context)
        {
            AliasQueryFilterContext filterContext;

            if (!CacheWeakFilterContext.TryGetValue(context, out filterContext))
            {
                filterContext = new AliasQueryFilterContext(context);
                CacheWeakFilterContext.Add(context, filterContext);
            }

            return(filterContext);
        }
Esempio n. 4
0
        /// <summary>Adds or gets the generic filter context associated with the context.</summary>
        /// <param name="context">The context associated to the filter context.</param>
        /// <returns>The generic filter context associated with the context.</returns>
        public static AliasQueryFilterContext AddOrGetGenericFilterContext(DbContext context)
        {
            var key = context.GetType().FullName;
            AliasQueryFilterContext filterContext;

            if (!CacheGenericFilterContext.TryGetValue(key, out filterContext))
            {
                lock (GenericFilterContextLock)
                {
                    if (!CacheGenericFilterContext.TryGetValue(key, out filterContext))
                    {
                        filterContext = new AliasQueryFilterContext(context, true);
                        CacheGenericFilterContext.Add(key, filterContext);
                    }
                }
            }

            return(filterContext);
        }
Esempio n. 5
0
        /// <summary>Constructor.</summary>
        /// <param name="ownerFilterContext">The context that owns his filter.</param>
        /// <param name="filter">The filter.</param>
#if EF6
        public QueryDbSetFilter(AliasQueryFilterContext ownerFilterContext, Func <IQueryable <T>, IQueryable <T> > filter)
 /// <summary>Makes a deep copy of this filter.</summary>
 /// <param name="filterContext">The filter context that owns the filter copy.</param>
 /// <returns>A copy of this filter.</returns>
 public virtual AliasBaseQueryFilter Clone(AliasQueryFilterContext filterContext)
 {
     throw new Exception(ExceptionMessage.GeneralException);
 }