/// <summary>
 /// Adds a new message to the queue.
 /// </summary>
 /// <param name="message">Message to be added to the queue.</param>
 public async Task AddQueueMessage(RabbitMessage message)
 {
     var startTime = DateTime.UtcNow;
     try
     {
         await Task.Factory.StartNew(() =>
         {
             _queueClient.BasicPublish(string.Empty, QueueName, _basicProperties, message.Body);
         });
     }
     catch (Exception exc)
     {
         ReportErrorAndRethrow(exc, "AddQueueMessage");
     }
     finally
     {
         CheckAlertSlowAccess(startTime, "AddQueueMessage");
     }
 }
 /// <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(() =>
         {
             _queueClient.BasicAck(message.DeliveryTag, false);
         });
     }
     catch (Exception exc)
     {
         ReportErrorAndRethrow(exc, "DeleteMessage");
     }
     finally
     {
         CheckAlertSlowAccess(startTime, "DeleteQueueMessage");
     }
 }