Example #1
0
        public Func <T, bool> GetInMemoryFilter <T>(bool userInterface)
            where T : Entity
        {
            using (userInterface ? ExecutionMode.UserInterface() : null)
            {
                EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));
                if (ee == null)
                {
                    return(a => true);
                }

                Func <T, bool> result = null;
                foreach (var item in ee.OnFilterQuery().NotNull())
                {
                    if (item.InMemoryFunction == null)
                    {
                        throw new InvalidOperationException("FilterQueryResult with InDatabaseExpresson '{0}' has no equivalent InMemoryFunction"
                                                            .FormatWith(item.InDatabaseExpresson.ToString()));
                    }

                    result = CombineFunc(result, item.InMemoryFunction);
                }

                if (result == null)
                {
                    return(a => true);
                }

                return(result);
            }
        }
Example #2
0
        internal CacheControllerBase <T> CacheController <T>() where T : Entity
        {
            EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));

            if (ee == null)
            {
                return(null);
            }

            return(ee.CacheController);
        }
Example #3
0
        internal void OnPreUnsafeMListDelete <T>(IQueryable mlistQuery, IQueryable <T> entityQuery) where T : Entity
        {
            AssertAllowed(typeof(T), inUserInterface: false);

            EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));

            if (ee != null)
            {
                ee.OnPreUnsafeMListDelete(mlistQuery, entityQuery);
            }
        }
Example #4
0
        internal IDisposable OnPreUnsafeDelete <T>(IQueryable <T> entityQuery) where T : Entity
        {
            AssertAllowed(typeof(T), inUserInterface: false);

            EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));

            if (ee == null)
            {
                return(null);
            }

            return(ee.OnPreUnsafeDelete(entityQuery));
        }
Example #5
0
        internal IDisposable?OnPreUnsafeDelete <T>(IQueryable <T> entityQuery) where T : Entity
        {
            AssertAllowed(typeof(T), inUserInterface: false);

            EntityEvents <T>?ee = (EntityEvents <T>?)entityEvents.TryGetC(typeof(T));

            if (ee == null)
            {
                return(null);
            }

            return(Disposable.Combine(ee?.OnPreUnsafeDelete(entityQuery), entityEventsGlobal.OnPreUnsafeDelete(entityQuery)));
        }
Example #6
0
        internal FilterQueryResult <T> OnFilterQuery <T>()
            where T : Entity
        {
            AssertAllowed(typeof(T), inUserInterface: false);

            EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));

            if (ee == null)
            {
                return(null);
            }

            FilterQueryResult <T> result = null;

            foreach (var item in ee.OnFilterQuery())
            {
                result = CombineFilterResult(result, item);
            }

            return(result);
        }
Example #7
0
        public Expression <Func <T, bool> > GetInDatabaseFilter <T>()
            where T : Entity
        {
            EntityEvents <T> ee = (EntityEvents <T>)entityEvents.TryGetC(typeof(T));

            if (ee == null)
            {
                return(null);
            }

            Expression <Func <T, bool> > result = null;

            foreach (var item in ee.OnFilterQuery().NotNull())
            {
                result = CombineExpr(result, item.InDatabaseExpresson);
            }

            if (result == null)
            {
                return(null);
            }

            return(result);
        }