public async Task <IDictionary <string, IList <BookItem> > > LoadAsync(bool forceRefresh = false, int maxVolumeCount = 9) { if (!IsLoading && (!IsLoaded || forceRefresh)) { IsLoading = true; try { var recommandBookGroups = await CachedClient.GetRecommandedBookLists(forceRefresh); this.Clear(); foreach (var bookGroup in recommandBookGroups) { var group = new KeyGroup <string, BookCoverViewModel> { Key = bookGroup.Key }; if (bookGroup.Value.Count <= maxVolumeCount) { group.AddRange(bookGroup.Value.Select(x => new BookCoverViewModel(x))); } else { group.AddRange(bookGroup.Value.Take(maxVolumeCount).Select(x => new BookCoverViewModel(x))); } this.Add(group); } IsLoading = false; IsLoaded = true; NotifyPropertyChanged("IsEmpty"); return(recommandBookGroups); } catch (Exception exception) { IsLoading = false; IsLoaded = false; Debug.WriteLine(exception.Message); return(null); } } return(null); }
public async Task LoadRecommandDataAsync() { if (IsLoading || IsRecommandLoaded) { return; } LoadingText = "Loading recommand books"; IsLoading = true; try { var recommandBookGroups = await CachedClient.GetRecommandedBookLists(); RecommandBookItems = new List <KeyGroup <string, BookCoverViewModel> >(); foreach (var bookGroup in recommandBookGroups) { var group = new KeyGroup <string, BookCoverViewModel> { Key = bookGroup.Key }; if (bookGroup.Value.Count <= 12) { group.AddRange(bookGroup.Value.Select(x => new BookCoverViewModel(x))); } else { group.AddRange(bookGroup.Value.Take(12).Select(x => new BookCoverViewModel(x))); } RecommandBookItems.Add(group); } IsLoading = false; IsRecommandLoaded = true; } catch (Exception exception) { MessageBox.Show(exception.Message, "Exception when retriving recommanded books", MessageBoxButton.OK); IsLoading = false; } }
public void Load(IList <KeyValuePair <string, IList <BookItem> > > recommandBookGroups) { foreach (var bookGroup in recommandBookGroups) { var group = new KeyGroup <string, BookCoverViewModel> { Key = bookGroup.Key }; group.AddRange(bookGroup.Value.Select(x => new BookCoverViewModel(x))); this.Add(group); } NotifyPropertyChanged("IsEmpty"); IsLoaded = true; IsLoading = false; }
public async Task LoadRecommandDataAsync() { if (IsLoading || IsRecommandLoaded) return; LoadingText = "Loading recommand books"; IsLoading = true; try { var recommandBookGroups = await CachedClient.GetRecommandedBookLists(); RecommandBookItems = new List<KeyGroup<string, BookCoverViewModel>>(); foreach (var bookGroup in recommandBookGroups) { var group = new KeyGroup<string, BookCoverViewModel> { Key = bookGroup.Key }; if (bookGroup.Value.Count <= 12) group.AddRange(bookGroup.Value.Select(x=>new BookCoverViewModel(x))); else group.AddRange(bookGroup.Value.Take(12).Select(x=>new BookCoverViewModel(x))); RecommandBookItems.Add(group); } IsLoading = false; IsRecommandLoaded = true; } catch (Exception exception) { MessageBox.Show(exception.Message, "Exception when retriving recommanded books", MessageBoxButton.OK); IsLoading = false; } }