public static Task UpdateMessageAsync(this ICloudQueue queue, ICloudQueueMessage message, byte[] content, TimeSpan visibilityTimeout)
        {
            Require.NotNull(queue, "queue");
            Require.NotNull(message, "message");

            return(queue.UpdateMessageAsync(message.MessageId, message.PopReceipt, content, visibilityTimeout));
        }
        public static Task DeleteMessageAsync(this ICloudQueue queue, ICloudQueueMessage message)
        {
            Require.NotNull(queue, "queue");
            Require.NotNull(message, "message");

            return(queue.DeleteMessageAsync(message.MessageId, message.PopReceipt));
        }
        public static Task UpdateMessageAsync(this ICloudQueue queue, ICloudQueueMessage message, byte[] content, TimeSpan visibilityTimeout)
        {
            Require.NotNull(queue, "queue");
            Require.NotNull(message, "message");

            return queue.UpdateMessageAsync(message.MessageId, message.PopReceipt, content, visibilityTimeout);
        }
        public static Task DeleteMessageAsync(this ICloudQueue queue, ICloudQueueMessage message)
        {
            Require.NotNull(queue, "queue");
            Require.NotNull(message, "message");

            return queue.DeleteMessageAsync(message.MessageId, message.PopReceipt);
        }
 public ReceivedNotification(
     ICloudQueue queue,
     ICloudQueueMessage notificationMessage,
     INotification notification)
 {
     m_queue = queue;
     m_notificationMessage = notificationMessage;
     m_notification        = notification;
 }
        public async Task MaintainLease(ICloudQueueMessage message, CancellationToken ct)
        {
            while (!ct.IsCancellationRequested)
            {
                try
                {
                    var queue = _queueClient.GetQueueReference(message.QueueName);
                    if (await queue.ExistsAsync())
                    {
                        var msg = new CloudQueueMessage(message.MessageId, message.PopReceipt);
                        await queue.UpdateMessageAsync(msg, TimeSpan.FromSeconds(60), MessageUpdateFields.Visibility);

                        message.MessageId  = msg.Id;
                        message.PopReceipt = msg.PopReceipt;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine($"Exception renewing message lease: {e}");
                }

                Thread.Sleep(TimeSpan.FromSeconds(25));
            }
        }