/** * Public methods */ public async void PopulateBookmarks(bool global = false) { try { WorkStatus(true); // 1. Clear bookmarks Bookmarks.Clear(); GlobalBookmarks.Clear(); // 2. Populate local bookmarks await Populate(false); // 3. Populate global bookmarks await Populate(true); WorkStatus(false); } catch (Exception e) { new BugTracker().Track("Bookmark List", "Populate Bookmarks", e.Message, e.StackTrace); _dialogService.OpenDialog(new DialogOkViewModel("Something went wrong.", "Error", DialogType.Error)); } finally { WorkStatus(false); } }
private async Task Populate(bool global) { List <Bookmark> bookmarks = new List <Bookmark>(); BookmarkRepo repo = new BookmarkRepo(); if (global) { await Task.Run(() => { // 3. Populate global bookmarks foreach (Bookmark bookmark in (new BookmarkRepo()).LoadGlobalBookmarks()) { //bookmark.PopulateArticles(User); bookmark.GetArticleCount(User); bookmarks.Add(bookmark); } }); foreach (Bookmark bookmark in bookmarks) { GlobalBookmarks.Add(bookmark); } } else { await Task.Run(() => { // 2. Populate local bookmarks foreach (Bookmark bookmark in repo.LoadBookmarks(User)) { // Populate articles colletion for each bookmark //bookmark.PopulateArticles(User); bookmark.GetArticleCount(User); bookmarks.Add(bookmark); } }); foreach (Bookmark bookmark in bookmarks) { Bookmarks.Add(bookmark); } } }