예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
 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;
			}

		}