public static async Task GetRootItems(FolderTreeViewModel folderTree) { Debug.Assert(folderTree != null); var db = Database.DbConnection; var rootFolders = await db.Table <Folders>().Where(f => f.Parent == 0).ToListAsync(); // Skip single rootfolders, unless it does not have children while (rootFolders.Count == 1) { var rootId = rootFolders.First().Id; var children = await db.Table <Folders>().Where(f => f.Parent == rootId).ToListAsync(); if (children.Count == 0) { break; } rootFolders = children; } var root = new ObservableCollection <FolderViewModel>(); foreach (Folders folder in rootFolders) { var folderViewModel = new FolderViewModel(folder, null, folderTree); await folderViewModel.ReadChildrenFromDb(); root.Add(folderViewModel); } folderTree.Children = root; }
public async Task FolderVm1() { var tree = new FolderTreeViewModel(); var folder = new FolderViewModel("Test", tree); await folder.Save(); var root = tree.Children; Assert.AreNotEqual(0, root.Count(), "Folder niet aangemaakt"); }
public async Task FolderVMaddChild() { var tree = new FolderTreeViewModel(); var testFolder = new FolderViewModel("TestParent", tree); await testFolder.Save(); var test = await testFolder.AddChild("testChild"); await test.Save(); Assert.IsNotNull(test, "Folder niet aangemaakt"); Assert.AreEqual("testChild", testFolder.Children[0].Name, false); }
public async Task FolderVmRecusie1() { var tree = new FolderTreeViewModel(); var testFolder = new FolderViewModel("TestParent", tree); await testFolder.Save(); var testChild = await testFolder.AddChild(testFolder); Assert.IsNotNull(testFolder, "Folder niet aangemaakt"); Assert.IsNull(testFolder.Parent, "Parent recursie!"); Assert.AreEqual(testFolder.Children.Count, 0, "Child recursie!"); }
public async Task FolderVmparent1() { var tree = new FolderTreeViewModel(); var parentFolder = new FolderViewModel("TestParent", tree); await parentFolder.Save(); var testFolder = await parentFolder.AddChild("Test"); Assert.IsNotNull(testFolder, "Folder niet aangemaakt"); Assert.IsNotNull(parentFolder, "parentFolder niet aangemaakt"); Assert.AreEqual<int>(0, testFolder.Children.Count, "Child ten onrechte aangemaakt"); Assert.AreEqual("Test", parentFolder.Children[0].Name, false); }
public override async void OnNavigatedTo(NavigatedToEventArgs e, Dictionary<string, object> viewModelState) { string errorMessage = string.Empty; try { LoadingData = true; var db = Database.DbConnection; var accountsList = new ObservableCollection<AccountViewModel>(); { var result = await db.QueryAsync<AccountViewModel>("select Id, Name from Accounts"); AccountsList = new ObservableCollection<AccountViewModel>(); foreach (var accountViewModel in result) { AccountsList.Add(accountViewModel); } } FolderTree = new FolderTreeViewModel(); await FolderTree.Refresh(); FolderItems = FolderTree.Children; if (FolderItems.Count == 0) { _navigationService.Navigate("EmailProvider",new AccountPageParameters() {FolderTree = _folderTree}); return; } var currentAccount = await SettingsMethods.GetSetting("default account") ?? await SettingsMethods.GetSetting("last used account") ?? "0"; SelectedAccountIndex = Convert.ToInt32(currentAccount); var account = await db.FindAsync<Accounts>(AccountsList[SelectedAccountIndex].Id); foreach (var folder in FolderItems) { if (folder.Expand(account.InFolderId, true)) break; } } catch (Exception ex) { errorMessage = string.Format(CultureInfo.CurrentCulture, "GeneralServiceErrorMessage", Environment.NewLine, ex.Message); } finally { LoadingData = false; } }
public override async void OnNavigatedTo(NavigatedToEventArgs e, Dictionary <string, object> viewModelState) { string errorMessage = string.Empty; try { LoadingData = true; var parameter = (AccountPageParameters)e.Parameter; if (e.NavigationMode == NavigationMode.New) { if ((parameter != null) && (parameter.Account != 0)) { _emailProvider = new Accounts(); } else { var db = Database.DbConnection; _emailProvider = await db.FindAsync <Accounts>(f => f.Id == parameter.Account); if (_emailProvider == null) { _emailProvider = new Accounts(); } } } _folderTree = parameter?.FolderTree; } catch (Exception ex) { errorMessage = string.Format(CultureInfo.CurrentCulture, "GeneralServiceErrorMessage", Environment.NewLine, ex.Message); } finally { LoadingData = false; } }
public override async void OnNavigatedTo(NavigatedToEventArgs e, Dictionary<string, object> viewModelState) { string errorMessage = string.Empty; try { LoadingData = true; var parameter = (AccountPageParameters)e.Parameter; if (e.NavigationMode == NavigationMode.New) { if ((parameter != null) && (parameter.Account != 0)) { _emailProvider = new Accounts(); } else { var db = Database.DbConnection; _emailProvider = await db.FindAsync<Accounts>(f => f.Id == parameter.Account); if (_emailProvider == null) { _emailProvider = new Accounts(); } } } _folderTree = parameter?.FolderTree; } catch (Exception ex) { errorMessage = string.Format(CultureInfo.CurrentCulture, "GeneralServiceErrorMessage", Environment.NewLine, ex.Message); } finally { LoadingData = false; } }
internal FolderViewModel(Folders myFolder, FolderViewModel myParent, FolderTreeViewModel visualTree) { this._folder = myFolder; _visualTree = visualTree; _parent = myParent; }
public FolderViewModel(string name, FolderTreeViewModel folderTree) { _folder = new Folders(); Name = name; _visualTree = folderTree; }