Example #1
0
        public ISubscription CreateMonitor(Action <RawBusMessage> monitor)
        {
            SubscriberConfigurator configurator = _createSubscriberConfigurator(null);

            IModel model = _connection.CreateModel();

            string queue = CreateQueue(model, configurator);

            model.QueueBind(queue, configurator.Exchange, configurator.RoutingKey);

            var consumer = new MessageMonitorConsumer(_messageHelper, monitor);

            return(new MessageMonitor(model, queue, consumer, configurator));
        }
Example #2
0
        public ISubscription CreateMonitor(Action <SerializedBusMessage> monitor, Action <ISubscriberConfigurator> configure = null, IEnumerable <BusHeader> filterHeaders = null)
        {
            SubscriberConfigurator configurator = _createSubscriberConfigurator(configure);

            IModel model = _connection.CreateModel();

            string queue = CreateQueue(model, configurator);

            model.QueueBind(queue, configurator.Exchange, configurator.RoutingKey, filterHeaders ?? Enumerable.Empty <BusHeader>());

            DefaultBasicConsumer consumer;

            if (configurator.TransactionalDelivery)
            {
                consumer = new TransactionalMessageMonitorConsumer(model, _messageHelper, monitor, configurator.ExceptionFilter);
            }
            else
            {
                consumer = new MessageMonitorConsumer(model, _messageHelper, monitor, configurator.ErrorSubscriber);
            }

            return(new MessageMonitor(model, queue, consumer, configurator));
        }