public static Task<bool> CreateIfNotExistsAsync(
            this CloudBlobContainer container, CancellationToken ct = default(CancellationToken))
        {
            ICancellableAsyncResult ar = container.BeginCreateIfNotExists(null, null);
            ct.Register(ar.Cancel);

            return Task.Factory.FromAsync<bool>(ar, container.EndCreateIfNotExists);
        }
        /// <summary>
        ///     Creates the container if it does not already exist asynchronously.
        /// </summary>
        /// <param name="blobContainer">Cloud blob container.</param>
        /// <param name="cancellationToken">Cancellation token.</param>
        /// <returns>
        ///     <c>true</c> if the container did not already exist and was created; otherwise <c>false</c>.
        /// </returns>
        public static Task<bool> CreateIfNotExistsAsync(
            this CloudBlobContainer blobContainer,
            CancellationToken cancellationToken = default (CancellationToken))
        {
            ICancellableAsyncResult asyncResult = blobContainer.BeginCreateIfNotExists(null, null);
            CancellationTokenRegistration registration = cancellationToken.Register(p => asyncResult.Cancel(), null);

            return Task<bool>.Factory.FromAsync(
                asyncResult,
                result =>
                    {
                        registration.Dispose();
                        return blobContainer.EndCreateIfNotExists(result);
                    });
        }
        /// <summary>
        /// CreateIfNotExistsAsync
        /// </summary>
        /// <param name="blobContainer"></param>
        /// <returns></returns>
        public static Task CreateIfNotExistsAsync(this CloudBlobContainer blobContainer)
        {
            var ar = blobContainer.BeginCreateIfNotExists(null, null);

            return Task.Factory.FromAsync(ar, (r) => { blobContainer.EndCreateIfNotExists(r); });
        }