// ---------------------------------- consume -------------------------------------- public IDisposable Consume(IEnumerable <QueueConsumerPair> queueConsumerPairs, Action <IConsumerConfiguration> configure) { Preconditions.CheckNotNull(queueConsumerPairs, nameof(queueConsumerPairs)); Preconditions.CheckNotNull(configure, "configure"); if (disposed) { throw new EasyNetQException("This bus has been disposed"); } var queueOnMessages = queueConsumerPairs.Select(x => { var onMessage = x.OnMessage; if (onMessage == null) { var handlerCollection = handlerCollectionFactory.CreateHandlerCollection(x.Queue); x.AddHandlers(handlerCollection); onMessage = (body, properties, messageReceivedInfo) => { var deserializedMessage = messageSerializationStrategy.DeserializeMessage(properties, body); var handler = handlerCollection.GetHandler(deserializedMessage.MessageType); return(handler(deserializedMessage, messageReceivedInfo)); }; } return(Tuple.Create(x.Queue, onMessage)); }).ToList(); var consumerConfiguration = new ConsumerConfiguration(connectionConfiguration.PrefetchCount); configure(consumerConfiguration); var consumer = consumerFactory.CreateConsumer(queueOnMessages, connection, consumerConfiguration); return(consumer.StartConsuming()); }
public IDisposable Consume(IQueue queue, Action <IHandlerRegistration> addHandlers, Action <IConsumerConfiguration> configure) { Preconditions.CheckNotNull(queue, "queue"); Preconditions.CheckNotNull(addHandlers, "addHandlers"); Preconditions.CheckNotNull(configure, "configure"); var handlerCollection = handlerCollectionFactory.CreateHandlerCollection(); addHandlers(handlerCollection); return(Consume(queue, (body, properties, messageReceivedInfo) => { var deserializedMessage = messageSerializationStrategy.DeserializeMessage(properties, body); var handler = handlerCollection.GetHandler(deserializedMessage.MessageType); return handler(deserializedMessage.Message, messageReceivedInfo); }, configure)); }