private async Task <LoadMoreItemsResult> LoadMoreItemsAsync(IncrementalLoaderCollection <StoreApp> collection, uint count)
        {
            List <StoreApp> loadedAapps = new List <StoreApp>();

            if (LoadingApps)
            {
                return(new LoadMoreItemsResult()
                {
                    Count = 0
                });
            }

            UiManager.ShowLoading();
            AppQueryParameters.PageIndex = StoreApps.Count / AppQueryParameters.PageSize;
            LoadingApps = true;

            try {
                loadedAapps.AddRange(await AppManager.Instance.GetAppsAsync(AppQueryParameters));
                _hasMoreItems = (loadedAapps.Count() == AppQueryParameters.PageSize);
            }
            catch (Exception exp) {
                _hasMoreItems = false;
                View.ShowNetworkErrorMessage();
            }

            LoadingApps = false;
            loadedAapps.ForEach(app => collection.Add(app));
            UiManager.HideLoading();

            return(new LoadMoreItemsResult()
            {
                Count = (uint)loadedAapps.Count
            });
        }
 public CatalogPageViewModel()
 {
     StoreApps       = new IncrementalLoaderCollection <StoreApp>(HasMoreItems, LoadMoreItemsAsync);
     TopApplications = new List <StoreApp>();
     TopGames        = new List <StoreApp>();
     _hasMoreItems   = true;
 }
 private bool HasMoreItems(IncrementalLoaderCollection <StoreApp> dataSource)
 {
     return(_hasMoreItems);
 }