/// <inheritdoc />
        public async Task DeleteAsync(string messageId, CancellationToken cancellationToken)
        {
            try
            {
                if (String.IsNullOrEmpty(messageId))
                {
                    throw new ArgumentNullException("messageId");
                }

                IStorageBlockBlob blob = _blobContainer.GetBlockBlobReference(messageId);
                await blob.DeleteAsync(cancellationToken);
            }
            catch (StorageException exception)
            {
                // Return successfully if the blob has already been deleted.
                if (exception.IsNotFoundBlobOrContainerNotFound())
                {
                    return;
                }
                else
                {
                    throw;
                }
            }
        }