public HandlerCollection(ILogFactory logFactory, HandlerDescriptorProvider descriptorProvider)
 {
     Ensure.NotNull(logFactory, "logFactory");
     Ensure.NotNull(descriptorProvider, "descriptorProvider");
     this.log = logFactory.Scope("Handlers");
     this.descriptorProvider = descriptorProvider;
 }
Example #2
0
 public HandlerCollection(Dictionary <Type, HashSet <HandlerDescriptor> > storage, HandlerDescriptorProvider descriptorProvider)
 {
     Ensure.NotNull(storage, "storage");
     Ensure.NotNull(descriptorProvider, "descriptorProvider");
     this.storage            = storage;
     this.descriptorProvider = descriptorProvider;
 }
Example #3
0
 public HandlerCollection(ILogFactory logFactory, Dictionary <Type, HashSet <HandlerDescriptor> > storage, HandlerDescriptorProvider descriptorProvider)
 {
     Ensure.NotNull(logFactory, "logFactory");
     Ensure.NotNull(storage, "storage");
     Ensure.NotNull(descriptorProvider, "descriptorProvider");
     this.log                = logFactory.Scope("Handlers");
     this.storage            = storage;
     this.descriptorProvider = descriptorProvider;
 }
Example #4
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);
        }
Example #5
0
        public void AddHandler()
        {
            var descriptorProvider = new HandlerDescriptorProvider(
                typeof(IEventHandler <>),
                typeof(IEventHandlerContext <>),
                TypeHelper.MethodName <IEventHandler <object>, object, Task>(h => h.HandleAsync),
                new DefaultExceptionHandlerCollection(),
                new DefaultExceptionHandlerCollection()
                );

            HandlerDescriptor descriptor = descriptorProvider.Get(new OrderPlacedHandler(), typeof(OrderPlaced));

            Assert.AreEqual(true, descriptor.IsPlain);
            Assert.AreEqual(false, descriptor.IsEnvelope);
            Assert.AreEqual(false, descriptor.IsContext);
        }
        /// <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);
        }
 public HandlerCollection(HandlerDescriptorProvider descriptorProvider)
 {
     Ensure.NotNull(descriptorProvider, "descriptorProvider");
     this.descriptorProvider = descriptorProvider;
 }