Inheritance: IBusConfigurator
Exemplo n.º 1
0
        public RabbitMQBus(Action <IBusConfigurator> busConfigurator = null)
        {
            BusConfigurator busConfiguration = new BusConfigurator();

            if (busConfigurator != null)
            {
                busConfigurator(busConfiguration);
            }

            BusId = busConfiguration.BusId;

            _exchange = "amq.headers";

            string username = "******";
            string password = "******";

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Endpoint))
            {
                _exchange = busConfiguration.ConnectionString.Endpoint;
            }

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Username))
            {
                username = busConfiguration.ConnectionString.Username;
            }

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Password))
            {
                password = busConfiguration.ConnectionString.Password;
            }

            ConnectionFactory factory = new ConnectionFactory
            {
                HostName = busConfiguration.ConnectionString.Host,
                Port     = busConfiguration.ConnectionString.Port,
                AutomaticRecoveryEnabled = true,
                TopologyRecoveryEnabled  = true,
                UserName    = username,
                Password    = password,
                VirtualHost = busConfiguration.ConnectionString.VirtualHost
            };

            _connection = factory.CreateConnection();

            _createSubscriberConfigurator = configure =>
            {
                SubscriberConfigurator configurator = new SubscriberConfigurator(_exchange, busConfiguration.ErrorSubscriber, busConfiguration.ReceiveSelfPublish);

                if (configure != null)
                {
                    configure(configurator);
                }

                return(configurator);
            };

            _createPublisherConfigurator = configure =>
            {
                PublisherConfigurator configurator = new PublisherConfigurator(_exchange, busConfiguration.ErrorHandler);

                if (configure != null)
                {
                    configure(configurator);
                }

                return(configurator);
            };
        }
Exemplo n.º 2
0
        public RabbitMQBus(Action <IBusConfigurator> busConfigurator = null)
        {
            BusConfigurator busConfiguration = new BusConfigurator();

            if (busConfigurator != null)
            {
                busConfigurator(busConfiguration);
            }

            BusId             = busConfiguration.BusId;
            BusConnectionName = busConfiguration.ConnectionProvidedName;

            _exchange = "amq.headers";

            string username = "******";
            string password = "******";

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Endpoint))
            {
                _exchange = busConfiguration.ConnectionString.Endpoint;
            }

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Username))
            {
                username = busConfiguration.ConnectionString.Username;
            }

            if (!string.IsNullOrEmpty(busConfiguration.ConnectionString.Password))
            {
                password = busConfiguration.ConnectionString.Password;
            }

            ConnectionFactory factory = new ConnectionFactory
            {
                HostName = busConfiguration.ConnectionString.Host,
                Port     = busConfiguration.ConnectionString.Port,
                AutomaticRecoveryEnabled = true,
                TopologyRecoveryEnabled  = true,
                UserName               = username,
                Password               = password,
                VirtualHost            = busConfiguration.ConnectionString.VirtualHost,
                DispatchConsumersAsync = true
            };

            _connection = factory.CreateConnection(busConfiguration.ConnectionProvidedName);

            _connection.ConnectionBlocked += (sender, args) =>
            {
                busConfiguration.ConnectionBlocked(args.Reason);
            };

            _connection.ConnectionUnblocked += (sender, args) =>
            {
                busConfiguration.ConnectionUnblocked();
            };

            _createSubscriberConfigurator = configure =>
            {
                SubscriberConfigurator configurator = new SubscriberConfigurator(_exchange, busConfiguration.ReplyExchange, busConfiguration.ErrorSubscriber, busConfiguration.ReceiveSelfPublish, busConfiguration.Trace, () => busConfiguration.Blocked);

                if (configure != null)
                {
                    configure(configurator);
                }

                return(configurator);
            };

            _createPublisherConfigurator = configure =>
            {
                PublisherConfigurator configurator = new PublisherConfigurator(_exchange, busConfiguration.ErrorHandler, busConfiguration.Trace, () => busConfiguration.Blocked);

                if (configure != null)
                {
                    configure(configurator);
                }

                return(configurator);
            };

            _createRpcPublisherConfigurator = configure =>
            {
                RpcPublisherConfigurator configurator = new RpcPublisherConfigurator(_exchange, busConfiguration.UseFastReply, busConfiguration.ReplyExchange, busConfiguration.ErrorHandler, busConfiguration.Trace, () => busConfiguration.Blocked);

                if (configure != null)
                {
                    configure(configurator);
                }

                return(configurator);
            };
        }