예제 #1
0
 public ProjectionPlayer(IEventStoreFactory eventStoreFactory, IProjectionStore projectionStore, IProjectionRepository projectionRepository, ISnapshotStore snapshotStore, EventTypeIndexForProjections index, ITenantResolver tenantResolver)
 {
     this.eventStoreFactory    = eventStoreFactory;
     this.projectionStore      = projectionStore;
     this.projectionRepository = projectionRepository;
     this.snapshotStore        = snapshotStore;
     this.index          = index;
     this.tenantResolver = tenantResolver;
 }
예제 #2
0
 public ProjectionPlayer(IEventStore eventStore, IProjectionStore projectionStore, IProjectionRepository projectionRepository, ISnapshotStore snapshotStore, EventTypeIndexForProjections index, IEventStorePlayer eventStorePlayer)
 {
     this.eventStore           = eventStore;
     this.projectionStore      = projectionStore;
     this.projectionRepository = projectionRepository;
     this.snapshotStore        = snapshotStore;
     this.index            = index;
     this.eventStorePlayer = eventStorePlayer;
 }
예제 #3
0
        public override void Build()
        {
            var builder           = this as ISettingsBuilder;
            var processorSettings = this as ISubscrptionMiddlewareSettings;

            Func <EventTypeIndexForProjections> eventIndexForProjectionsFactory = () =>
            {
                //  May be we want to have separate serializer + transport per type?!?!?
                var transport       = builder.Container.Resolve <ITransport>(builder.Name);
                var serializer      = builder.Container.Resolve <ISerializer>(null);
                var publisher       = transport.GetPublisher <ICommand>(serializer);
                var allEventTypes   = GetAllEventsFromAssemliesBecauseSomeEventMightNotBePartOfProjections(processorSettings.HandlerRegistrations);
                var projectionStore = builder.Container.Resolve <IProjectionStore>(builder.Name);

                var indexSubscriber = new EventTypeIndexForProjections(allEventTypes, publisher, projectionStore, new StupidProjectionStore(projectionStore));
                return(indexSubscriber);
            };

            builder.Container.RegisterSingleton <EventTypeIndexForProjections>(() => eventIndexForProjectionsFactory());
        }