DisplayName = AccountName ,
Directories = ownFolders.ToList()
};
-
+
+ this.RootNodes.Add(rootItem);
+ this.RootNodes.Add(othersNode);
SetInitialSelections(Account);
- Execute.OnUIThread(()=>
- {
- this.RootNodes.Add(rootItem);
- this.RootNodes.Add(othersNode);
- IsBusy = false;
- });
+ IsBusy = false;
}
public bool IsBusy
var selects = from rootRecord in RootNodes
from record in rootRecord
- where record.ObjectInfo!=null && selections.Contains(record.ObjectInfo.Name)
+ where record.Uri !=null && selections.Contains(record.Uri.ToString())
select record;
selects.Apply(record=>record.IsChecked=true);
var listObjects = (from container in containers\r
select Task<IList<ObjectInfo>>.Factory.StartNew(_ =>\r
client.ListObjects(accountInfo.UserName, container.Name, since), container.Name)).ToList();\r
-\r
+ //BUG: Can't detect difference between no changes or no objects\r
+ //ListObjects returns nothing if there are no changes since the last check time (since value) \r
+ //TODO: Must detect the difference between no server objects an\r
var listShared = Task<IList<ObjectInfo>>.Factory.StartNew(_ => client.ListSharedObjects(since), "shared");\r
listObjects.Add(listShared);\r
var listTasks = await Task.Factory.WhenAll(listObjects.ToArray());\r
{
if (Log.IsDebugEnabled) Log.DebugFormat("START");
- var objects = new List<ObjectInfo>();
var accounts = ListSharingAccounts(since);
- foreach (var account in accounts)
+ var items = from account in accounts
+ let containers = ListContainers(account.name)
+ from container in containers
+ select ListObjects(account.name, container.Name);
+ var objects=items.SelectMany(r=> r).ToList();
+/*
+ var objects = new List<ObjectInfo>();
+ foreach (var containerObjects in items)
{
- var containers = ListContainers(account.name);
- foreach (var container in containers)
- {
- var containerObjects = ListObjects(account.name, container.Name);
- objects.AddRange(containerObjects);
- }
+ objects.AddRange(containerObjects);
}
+*/
if (Log.IsDebugEnabled) Log.DebugFormat("END");
return objects;
}
client.AssertStatusOK("ListObjects failed");
+ //HACK: Must add it to all other operations as well
+ StatusCode = client.StatusCode;
//If the result is empty, return an empty list,
var infos = String.IsNullOrWhiteSpace(content)
? new List<ObjectInfo>()
info.Account = account;
info.StorageUri = this.StorageUrl;
}
- if (Log.IsDebugEnabled) Log.DebugFormat("START");
+ if (Log.IsDebugEnabled) Log.DebugFormat("END");
return infos;
}
}
}
+ public HttpStatusCode StatusCode { get; set; }
public IList<ObjectInfo> ListObjects(string account, string container, string folder, DateTime? since = null)