public static Task SetPermissionsAsync(this CloudBlobContainer container, BlobContainerPermissions permissions) { return Task.Factory.FromAsync( (cb, state) => container.BeginSetPermissions(permissions, cb, state), ar => container.EndSetPermissions(ar), null); }
/// <summary> /// Sets permissions for the container asynchronously. /// </summary> /// <param name="blobContainer">Cloud blob container.</param> /// <param name="permissions">The permissions to apply to the container.</param> /// <param name="accessCondition"> /// An <see cref="T:Microsoft.WindowsAzure.Storage.AccessCondition" /> object that represents the access conditions for the container. If <c>null</c>, no condition is used. /// </param> /// <param name="cancellationToken">Cancellation token.</param> public static Task SetPermissionsAsync( this CloudBlobContainer blobContainer, BlobContainerPermissions permissions, AccessCondition accessCondition = null, CancellationToken cancellationToken = default (CancellationToken)) { ICancellableAsyncResult asyncResult = blobContainer.BeginSetPermissions(permissions, accessCondition, null, null, null, null); CancellationTokenRegistration registration = cancellationToken.Register(p => asyncResult.Cancel(), null); return Task.Factory.FromAsync( asyncResult, result => { registration.Dispose(); blobContainer.EndSetPermissions(result); }); }