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