private void UpdateItem(ref NSObject item)
{
lock (LockRepositories) {
if (item == null) {
return;
}
NSCmisTree cmis = item as NSCmisTree;
if (cmis == null) {
return;
}
Stack<string> paths = new Stack<string> ();
do {
paths.Push(cmis.Name);
cmis = cmis.Parent;
} while (cmis != null);
string current = paths.Pop ();
cmis = Repositories.First (x => x.Name.Equals (current));
if (cmis == null) {
return;
}
while (paths.Count > 0) {
current = paths.Pop ();
cmis = cmis.Children.First (x => x.Name.Equals (current));
if (cmis == null) {
return;
}
}
item = cmis;
}
}