private static async Task <SimpleHttpResponse> DoForContainersAsync(string container, HttpStatusCode successStatus, Func <CloudBlobContainer, Task> action, IEnumerable <CloudStorageAccount> accounts, bool ignoreNotFound, IEnumerable <CloudStorageAccount> excludeAccounts) { SimpleHttpResponse retval = new SimpleHttpResponse { StatusCode = successStatus, }; if (excludeAccounts != null) { accounts = accounts.Except(excludeAccounts); } var actionTasks = accounts .Select(account => action(NamespaceHandler.GetContainerByName(account, container))); try { await Task.WhenAll(actionTasks.ToArray()); } catch (AggregateException aggEx) { aggEx.Handle(ex => ProcessException(ex, ignoreNotFound, retval)); } catch (Exception ex) { if (!ProcessException(ex, ignoreNotFound, retval)) { throw; } } return(retval); }
public static async Task EnqueueBlobReplicationAsync(string container, string blob, bool deleteReplica) { var namespaceBlob = await NamespaceHandler.FetchNamespaceBlobAsync(container, blob); await EnqueueBlobReplicationAsync(namespaceBlob, deleteReplica); }