/// <summary> /// Dequeue a message from RabbitMQ. /// </summary> /// <returns>A dequeued message or null if there weren't any.</returns> public static MtaQueuedMessage Dequeue() { BasicDeliverEventArgs ea = RabbitMqManager.Dequeue(RabbitMqManager.RabbitMqQueue.OutboundWaiting, 1, 100).FirstOrDefault(); if (ea == null) { return(null); } MtaQueuedMessage qmsg = Serialisation.Deserialise <MtaQueuedMessage>(ea.Body); qmsg.RabbitMqDeliveryTag = ea.DeliveryTag; qmsg.IsHandled = false; return(qmsg); }
/// <summary> /// Dequeues a collection of inbound messages from RabbitMQ. /// </summary> /// <param name="maxItems">The maximum amount of messages to dequeue.</param> /// <returns>The dequeue messages.</returns> public static MtaMessageCollection Dequeue(int maxItems) { List <BasicDeliverEventArgs> items = RabbitMqManager.Dequeue(RabbitMqManager.RabbitMqQueue.Inbound, maxItems, 1 * 1000); MtaMessageCollection messages = new MtaMessageCollection(); if (items.Count == 0) { return(messages); } foreach (BasicDeliverEventArgs ea in items) { MtaMessage msg = Serialisation.Deserialise <MtaMessage>(ea.Body); msg.RabbitMqDeliveryTag = ea.DeliveryTag; messages.Add(msg); } return(messages); }