コード例 #1
0
        public void Exceptions()
        {
            DefaultExceptionHandlerCollection collection = new DefaultExceptionHandlerCollection();
            MultiHandler handler = new MultiHandler();

            collection.AddAll(handler);

            collection.Handle(new ArgumentException());
            collection.Handle(new ArgumentException());
            collection.Handle(new AggregateRootException());

            Assert.AreEqual(2, handler.ArgumentCount);
            Assert.AreEqual(1, handler.AggregateRootCount);
        }
コード例 #2
0
        private void Initialize()
        {
            CommandExceptionHandlers    = new DefaultExceptionHandlerCollection();
            DispatcherExceptionHandlers = new DefaultExceptionHandlerCollection();

            descriptorProvider = new HandlerDescriptorProvider(
                typeof(ICommandHandler <>),
                null,
                TypeHelper.MethodName <ICommandHandler <object>, object, Task>(h => h.HandleAsync),
                CommandExceptionHandlers,
                DispatcherExceptionHandlers
                );
            handlers = new HandlerCollection(log.Factory, descriptorProvider);
        }
コード例 #3
0
        /// <summary>
        /// Creates new instance.
        /// </summary>
        /// <param name="store">The publishing store for command persistent delivery.</param>
        /// <param name="schedulingProvider">The provider of a delay computation for delayed events.</param>
        public PersistentEventDispatcher(IEventPublishingStore store, ISchedulingProvider schedulingProvider)
        {
            Ensure.NotNull(store, "store");
            Ensure.NotNull(schedulingProvider, "schedulingProvider");
            this.store = store;
            this.schedulingProvider = schedulingProvider;

            EventExceptionHandlers      = new DefaultExceptionHandlerCollection();
            DispatcherExceptionHandlers = new DefaultExceptionHandlerCollection();

            this.descriptorProvider = new HandlerDescriptorProvider(
                typeof(IEventHandler <>),
                typeof(IEventHandlerContext <>),
                TypeHelper.MethodName <IEventHandler <object>, object, Task>(h => h.HandleAsync),
                EventExceptionHandlers,
                DispatcherExceptionHandlers
                );

            Handlers = new HandlerCollection(storage, descriptorProvider);
        }