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)); }
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)); }