private void LoadAccounts() { var nodes = _accountDirectory.GetRootNodes(); var root = new List <TreeNodeViewModel>(); foreach (var node in nodes) { var vm = node switch { CosmosAccount account => (TreeNodeViewModel)_viewModelFactory.CreateAccountNode( account, _accountContextFactory.Create(account), null), CosmosAccountFolder folder => (TreeNodeViewModel)_viewModelFactory.CreateAccountFolderNode(folder, null), _ => throw new Exception("Invalid node type") }; root.Add(vm); } foreach (var c in root.OrderByDescending(n => n is AccountFolderNodeViewModel) .ThenBy(c => c.Text)) { RootNodes.Add(c); } }
private void LoadAccounts() { var nodes = _accountDirectory.GetRootNodes(); foreach (var node in nodes) { var vm = node switch { CosmosAccount account => (TreeNodeViewModel)_viewModelFactory.CreateAccountNode( account, _accountContextFactory.Create(account), null), CosmosAccountFolder folder => (TreeNodeViewModel)_viewModelFactory.CreateAccountFolderNode(folder, null), _ => throw new Exception("Invalid node type") }; RootNodes.Add(vm); } }
protected override Task <IEnumerable <TreeNodeViewModel> > LoadChildrenAsync() { var childNodes = _accountDirectory.GetChildNodes(_folder.FullPath); var result = new List <TreeNodeViewModel>(); foreach (var node in childNodes) { var childVM = node switch { CosmosAccount account => (TreeNodeViewModel)_viewModelFactory.CreateAccountNode( account, _accountContextFactory.Create(account), this), CosmosAccountFolder folder => (TreeNodeViewModel)_viewModelFactory.CreateAccountFolderNode(folder, this), _ => throw new Exception("Invalid node type") }; result.Add(childVM); } return(Task.FromResult <IEnumerable <TreeNodeViewModel> >(result)); }