/// <summary>
        /// Adds a new message to the queue.
        /// </summary>
        /// <param name="message">Message to be added to the queue.</param>
        public Task AddQueueMessage(RabbitMessage message)
        {
            var startTime = DateTime.UtcNow;
            try
            {
                return Task.Factory.StartNew(() =>
                {
                    _channel.BasicPublish(string.Empty, QueueName, _commonMessageHeader, message.Body);
                });
            }
            catch (Exception exc)
            {
                ReportErrorAndRethrow(exc, "AddQueueMessage");
            }
            finally
            {
                CheckAlertSlowAccess(startTime, "AddQueueMessage");
            }

            return TaskDone.Done;
        }
 /// <summary>
 /// Deletes a messages from the queue.
 /// </summary>
 /// <param name="message">A message to be deleted from the queue.</param>
 public async Task DeleteQueueMessage(RabbitMessage message)
 {
     var startTime = DateTime.UtcNow;
     try
     {
         await Task.Factory.StartNew(() =>
         {
             _channel.BasicAck(message.DeliveryTag, false);
         });
     }
     catch (Exception exc)
     {
         ReportErrorAndRethrow(exc, "DeleteMessage");
     }
     finally
     {
         CheckAlertSlowAccess(startTime, "DeleteQueueMessage");
     }
 }