public void ShouldCreateRepositoryFactory() { var factory = ReflectionExtensions.BuildRepositoryFunc <FakeEntity>(); factory.Should().NotBeNull(); factory(Fake <IStoreEntities>()).Should().BeAssignableTo <IRepository <FakeEntity> >(); }
public IRepository <TEntity> ForEntity <TEntity>(IDomainUnitOfWork uow) where TEntity : IEntity { var factory = Factories.GetOrAdd(typeof(TEntity), t => ReflectionExtensions.BuildRepositoryFunc <TEntity>()) as Func <IMetrics, IStoreEvents, IStoreSnapshots, IOobWriter, IEventFactory, IDomainUnitOfWork, IRepository <TEntity> >; if (factory == null) { throw new InvalidOperationException("unknown entity repository"); } return(factory(_metrics, _eventstore, _snapstore, _oobStore, _factory, uow)); }
public IRepository <TEntity> ForEntity <TEntity>() where TEntity : IEntity { var factory = Factories.GetOrAdd(typeof(TEntity), t => ReflectionExtensions.BuildRepositoryFunc <TEntity>()) as Func <IStoreEntities, IRepository <TEntity> >; if (factory == null) { throw new InvalidOperationException("unknown entity repository"); } return(factory(_store)); }