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); } }
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); }
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); } }
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)); }
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))); }
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); }
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); }