Ejemplo n.º 1
0
        private ISession CreateFaultSession()
        {
            var session = SessionHelper.Create(
                _stores,
                _stores,
                eventRouter: StubEventRouter.Fault(),
                snapshotStrategy: new IntervalSnapshotStrategy(10));

            return(session);
        }
Ejemplo n.º 2
0
        public static ISession Create(
            ITransaction transaction,
            IEventStore eventStore,
            ISnapshotStore snapshotStore,
            ILoggerFactory loggerFactory                      = null,
            IEventPublisher eventPublisher                    = null,
            IEventRouter eventRouter                          = null,
            IEventUpdateManager eventUpdateManager            = null,
            IEnumerable <IMetadataProvider> metadataProviders = null,
            ISnapshotStrategy snapshotStrategy                = null,
            IEventsMetadataService eventsMetadataService      = null)
        {
            // TODO: refactor ctor's Session sucks :(

            if (eventStore == null)
            {
                throw new ArgumentNullException(nameof(eventStore));
            }
            if (snapshotStore == null)
            {
                throw new ArgumentNullException(nameof(snapshotStore));
            }

            if (loggerFactory == null)
            {
                loggerFactory = new NoopLoggerFactory();
            }

            if (eventRouter == null)
            {
                eventRouter = StubEventRouter.Ok();
            }

            if (eventPublisher == null)
            {
                eventPublisher = new EventPublisher(eventRouter);
            }

            var session = new Session(
                loggerFactory: loggerFactory,
                transaction: transaction,
                eventStore: eventStore,
                snapshotStore: snapshotStore,
                eventPublisher: eventPublisher,
                eventUpdateManager: eventUpdateManager,
                metadataProviders: metadataProviders,
                snapshotStrategy: snapshotStrategy,
                eventsMetadataService: eventsMetadataService);

            return(session);
        }
        public async Task Projection_is_rebuilt_by_denormalizer()
        {
            //Need to create an aggregate here.
            var serializer = new EventSerializer(new BsonTextSerializer());

            DenormAggregate aggregate;

            using (var eventStore = new MongoEventStore(_mongoClient, _defaultSettings))
            {
                aggregate = new DenormAggregate(Guid.NewGuid());
                for (int i = 0; i < 10; i++)
                {
                    aggregate.DoThing("Thing_" + i);
                }

                var session = new Session(new LoggerFactory(), eventStore, new EventPublisher(StubEventRouter.Ok()), serializer);
                session.Add(aggregate);
                await session.CommitAsync();
            }

            var projectionRepository = new MongoProjectionRepository(_mongoClient, _defaultSettings);

            using (var eventStore = new MongoEventStore(_mongoClient, _defaultSettings))
            {
                var testDenormalizer = new TestDenormalizer(projectionRepository, eventStore, serializer);
                await testDenormalizer.RebuildAsync();
            }

            var projection = await projectionRepository.RetrieveAsync <TestProjection>("TestDenormalizedProjection");

            projection.LastThing.Should().Be(aggregate.LastThing);
        }
Ejemplo n.º 4
0
        private ISession CreateFaultSession()
        {
            var faultSession = new Session(new NoopLoggerFactory(), _eventStore, new EventPublisher(StubEventRouter.Fault()), new EventSerializer(new JsonTextSerializer()), new SnapshotSerializer(new JsonTextSerializer()), _projectionSerializer, null, null, null, new IntervalSnapshotStrategy(10));

            return(faultSession);
        }
Ejemplo n.º 5
0
        private ISession CreateSession()
        {
            var session = new Session(new LoggerFactory(), _eventStore, new EventPublisher(StubEventRouter.Ok()), new EventSerializer(new JsonTextSerializer()));

            return(session);
        }