示例#1
0
        public ProjectionDispatcherTest(ITestOutputHelper output)
        {
            var converter = new Converter(output);

            Console.SetOut(converter);

            World = World.StartWithDefaults("test-store");

            var stateAdapterProvider = new StateAdapterProvider(World);

            stateAdapterProvider.RegisterAdapter(new Entity1StateAdapter());
            new EntryAdapterProvider(World);

            StateTypeStateStoreMap.StateTypeToStoreName(nameof(Entity1), typeof(Entity1));
            StateTypeStateStoreMap.StateTypeToStoreName(nameof(Entity2), typeof(Entity2));

            var dispatcherProtocols =
                World.Stage.ActorFor(
                    new[] { DispatcherInterfaceType, typeof(IProjectionDispatcher) }, ProjectionDispatcherType);

            var dispatchers = Protocols.Two <IDispatcher, IProjectionDispatcher>(dispatcherProtocols);

            Dispatcher           = dispatchers._1;
            ProjectionDispatcher = dispatchers._2;

            var storeProtocols =
                World.ActorFor(
                    new[] { StateStoreInterfaceType, typeof(IDispatcherControl) },
                    typeof(InMemoryStateStoreActor <TextState>), Dispatcher);

            var storeWithControl = Protocols.Two <IStateStore, IDispatcherControl>(storeProtocols);

            Store             = storeWithControl._1;
            DispatcherControl = storeWithControl._2;
        }
示例#2
0
        public ProjectionEventStoreTransactionAnnouncer(IEventStore eventStore, IProjectionDispatcher dispatcher)
            : base(eventStore)
        {
            Contract.Requires(eventStore != null);
            Contract.Requires(dispatcher != null);

            _dispatcher = dispatcher;
        }
        public ProjectionInitializer(IEventStore eventStore,
                                     IProjectionDispatcher dispatcher)
        {
            Contract.Requires(eventStore != null);
            Contract.Requires(dispatcher != null);

            _eventStore = eventStore;
            _dispatcher = dispatcher;
        }
        public static IProjectionDispatcher FilterFor(
            World world,
            IProjectionDispatcher projectionDispatcher,
            string[] becauseOf,
            FilterOutcome filterOutcome)
        {
            var projectionProtocols =
                world.ActorFor(
                    new [] { typeof(IProjectionDispatcher), typeof(IProjection) },
                    typeof(FilterProjectionDispatcherActor), filterOutcome);

            var projectionFilter = Protocols.Two <IProjectionDispatcher, IProjection>(projectionProtocols);

            projectionDispatcher.ProjectTo(projectionFilter._2, becauseOf);

            return(projectionFilter._1);
        }
        public QueueProjectionDispatcher(IProjectionDispatcher projectionDispatcher)
        {
            Contract.Requires(projectionDispatcher != null);

            _projectionDispatcher = projectionDispatcher;
        }
示例#6
0
        public EventStoreProjectionWaiter(IProjectionDispatcher projectionDispatcher)
        {
            Contract.Requires(projectionDispatcher != null);

            _projectionDispatcher = projectionDispatcher;
        }