コード例 #1
0
        public void ShouldCreateRepositoryFactory()
        {
            var factory = ReflectionExtensions.BuildRepositoryFunc <FakeEntity>();

            factory.Should().NotBeNull();
            factory(Fake <IStoreEntities>()).Should().BeAssignableTo <IRepository <FakeEntity> >();
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }