+ try\r
+ {\r
+ await client.Authenticate().ConfigureAwait(false);\r
+\r
+ var containers = await client.ListContainers(newAccount.AccountName).ConfigureAwait(false);\r
+ var containerUris = from container in containers\r
+ select String.Format(@"{0}/v1/{1}/{2}",\r
+ newAccount.ServerUrl, newAccount.AccountName,\r
+ container.Name);\r
+\r
+ newAccount.SelectiveFolders.AddRange(containerUris.ToArray());\r
+\r
+ var objectInfos = (from container in containers\r
+ from dir in client.ListObjects(newAccount.AccountName, container.Name)\r
+ where container.Name.ToString() != "trash"\r
+ select dir).ToList();\r
+ var tree = objectInfos.ToTree();\r
+\r
+ var selected = (from root in tree\r
+ from child in root\r
+ select child.Uri.ToString()).ToArray();\r
+ newAccount.SelectiveFolders.AddRange(selected);\r
+ return;\r
+ }\r
+ catch (WebException)\r
+ {\r
+ if (retries > 0)\r
+ retries--;\r
+ else\r
+ throw;\r
+ }\r