public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { var bookUrl = (string)parameter; var service = new BookService(); Book = await service.GetBookAsync(bookUrl); var characterService = new CharacterService(); foreach (var item in book.povCharacters) { var character = await characterService.GetCharacterAsync(item); PovCharacters.Add(character); } await base.OnNavigatedToAsync(parameter, mode, state); }
/// <summary> /// When navigated to the page, gets the book details via api request, and then some url-base data requested too /// </summary> /// <param name="parameter"></param> /// <param name="mode"></param> /// <param name="state"></param> /// <returns></returns> public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { try { var bookUrl = (string)parameter; var service = new ThroneService(); Book = await service.GetBookAsync(bookUrl); if (Book.PovCharacters.Length != 0) { PovCharacters.Clear(); foreach (String url in Book.PovCharacters) { Character newCharacter = await service.GetCharacterAsync(url); PovCharacters.Add(newCharacter); } } if (Book.Characters.Length != 0) { Characters.Clear(); foreach (String url in Book.Characters) { Character newCharacter = await service.GetCharacterAsync(url); Characters.Add(newCharacter); } } await base.OnNavigatedToAsync(parameter, mode, state); } catch (RedirectMainException) { NavigationService.Navigate(typeof(MainPage)); } }