public async Task <IList <T> > LoadMore(CancellationToken token)
        {
            var      packageSource = _sourceRepository.PackageSource.Source;
            List <T> list;

            if (_packageListCache.TryGetPackages(packageSource, out var packages))
            {
                list = LocalSearch(packages);
            }
            else
            {
                list = await SearchOnServer(token);

                if (list.Count > _pageSize)
                {
                    // More packages than requested, assume static feed
                    _packageListCache.SetPackages(packageSource, list);
                    list = LocalSearch(list);
                }
            }

            if (list.Count < _pageSize)
            {
                _lastPageIndex = CurrentPage;
            }
            else
            {
                CurrentPage++;
            }

            return(list);
        }