public static SagaDistributorConfigurator <TSaga> Saga <TSaga>(
            this DistributorBusServiceConfigurator configurator, ISagaRepository <TSaga> sagaRepository)
            where TSaga : class, ISaga
        {
            var consumerConfigurator = new SagaDistributorConfiguratorImpl <TSaga>(sagaRepository);

            configurator.AddConfigurator(consumerConfigurator);

            return(consumerConfigurator);
        }
        public static HandlerDistributorConfigurator <TMessage> Handler <TMessage>(
            this DistributorBusServiceConfigurator configurator)
            where TMessage : class
        {
            var handlerConfigurator = new HandlerDistributorConfiguratorImpl <TMessage>();

            configurator.AddConfigurator(handlerConfigurator);

            return(handlerConfigurator);
        }
Esempio n. 3
0
        public static ConsumerDistributorConfigurator <TConsumer> Consumer <TConsumer>(
            this DistributorBusServiceConfigurator configurator)
            where TConsumer : class
        {
            var consumerConfigurator = new ConsumerDistributorConfiguratorImpl <TConsumer>();

            configurator.AddConfigurator(consumerConfigurator);

            return(consumerConfigurator);
        }
Esempio n. 4
0
        public static ConsumerDistributorConfigurator Consumer(
            [NotNull] this DistributorBusServiceConfigurator configurator,
            [NotNull] Type consumerType)
        {
            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("Subscribing Consumer Worker: {0} (by type, using object consumer factory)",
                                 consumerType);
            }

            object consumerConfigurator =
                FastActivator.Create(typeof(UntypedConsumerDistributorConfigurator <>),
                                     new[] { consumerType });

            configurator.AddConfigurator((DistributorBuilderConfigurator)consumerConfigurator);

            return((ConsumerDistributorConfigurator)consumerConfigurator);
        }