Exemple #1
0
 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;
 }
Exemple #2
0
 public SimpleHttpResponse(SimpleHttpResponse src)
 {
     this.StatusCode = src.StatusCode;
     this.ReasonPhrase = src.ReasonPhrase;
 }
Exemple #3
0
 public DelegatedResponse(SimpleHttpResponse src) : base(src)
 {
 }
Exemple #4
0
 public SimpleHttpResponse(SimpleHttpResponse src)
 {
     this.StatusCode   = src.StatusCode;
     this.ReasonPhrase = src.ReasonPhrase;
 }
Exemple #5
0
 private static bool ProcessException(Exception ex, bool ignoreNotFound, SimpleHttpResponse response)
 {
     if (ex is StorageException)
     {
         var storeEx = (StorageException)ex;
         if (!ignoreNotFound || storeEx.RequestInformation.HttpStatusCode != (int)HttpStatusCode.NotFound)
         {
             response.StatusCode = (HttpStatusCode)storeEx.RequestInformation.HttpStatusCode;
             response.ReasonPhrase = storeEx.RequestInformation.HttpStatusMessage;
         }
         return true;
     }
     return false;
 }