/// <summary> /// Updates books. /// </summary> public virtual async void UpdateBooks() { ConnectionErrorOccured = false; Loaded = false; try { var books = await App.CurrentApplication.BookRequestManager.GetBooksByCategory(this.BooksCategory, 10, 0); if (books != null) { foreach (Book book in books) { BookViewModel bookViewModel = new BookViewModel(book); bookViewModel.CheckCoverExistence(); this.Books.Add(bookViewModel); } } } catch (WebException webEx) { ConnectionErrorOccured = true; } finally { Loaded = true; } }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); if (isNewPageInstance) { if (ViewModel == null) { object viewModel = null; if (State.TryGetValue(transientKey, out viewModel)) { DataContext = viewModel; } else { DataContext = new BookViewModel(new Book()); } } else { ViewModel.UpdateBookDetails(); } } ViewModel.UpdateRating(); ViewModel.UpdateReviews(); if (e.NavigationMode == System.Windows.Navigation.NavigationMode.New) { ViewModel.AddToHistory(); DataContext = ViewModel; } isNewPageInstance = false; }
/// <summary> /// Loads more #number_of_results results. Method is called, when user reached last item in list. /// </summary> public virtual async void FetchMoreBooks() { var resultsCount = App.CurrentApplication.ResultsCount; if (Books.Count % resultsCount == 0) // true, if it is possible to load more books { try { ConnectionErrorOccured = false; Loaded = false; var books = await App.CurrentApplication.BookRequestManager.SearchBooks(title, author, (uint)resultsCount, (uint)Books.Count); if (books != null) { foreach (Book book in books) { BookViewModel bookViewModel = new BookViewModel(book); bookViewModel.CheckCoverExistence(); this.Books.Add(bookViewModel); } } } catch (WebException webEx) { //App.CurrentApplication.MessageService.ShowErrorMessage("Server is down.", "Error"); ConnectionErrorOccured = true; } finally { Loaded = true; } } }