public IQueryable <T> CreateQuery() { var query = GetDataAccessor().CreateQuery(); var eventHandlers = RepositoryEventRegistry.GetQueryInterceptors <T>(); foreach (var handler in eventHandlers) { query = handler.Handle(query); } return(query); }
public virtual void Remove(T entity) { RepositoryEventRegistry.RaiseEvent <IBeforeRemoveListener>(entity); GetDataAccessor().Remove(entity); RepositoryEventRegistry.RaiseEvent <IAfterRemoveListener>(entity); }
public virtual void Add(T entity) { RepositoryEventRegistry.RaiseEvent <IBeforeAddListener>(entity); GetDataAccessor().Add(entity); RepositoryEventRegistry.RaiseEvent <IAfterAddListener>(entity); }
public InRepoConfiguration WithQueryInterceptor(IQueryInterceptor interceptor) { RepositoryEventRegistry.Register(interceptor); return(this); }
public InRepoConfiguration WithEvent(IRepositoryEvent @event) { RepositoryEventRegistry.Register(@event); return(this); }