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; }
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; }
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()); }