Пример #1
0
        protected async override Task <FetchArticlesResult> FetchArticlesAsync(int pageNumber = 1, int pageSize = Constants.DefaultArticlesPageSize)
        {
            System.Diagnostics.Debug.WriteLine($"{GetType().Name} FetchArticlesAsync for {Title} Source");
            var result   = new FetchArticlesResult(pageNumber, pageSize);
            var articles = await NewsDataService.FetchArticlesBySource(Source);

            if (articles?.Articles != null)
            {
                result.Articles   = articles.Articles.Select(a => new ArticleViewModel(a)).ToList();
                result.TotalCount = articles.TotalCount;
            }
            return(result);
        }
        private void LoadArticlesPage(FetchArticlesResult articles)
        {
            var nextPage = Articles.VirtualPage + 1;

            if (nextPage != articles.PageNumber)
            {
                // Already loaded, discarding the result
                return;
            }

            Articles.AddPage(articles.Articles, articles.TotalCount, articles.PageNumber, articles.PageSize);
            LoadMoreCommand.ChangeCanExecute();
            Raise(nameof(IsEmpty));
        }
Пример #3
0
        protected override Task <FetchArticlesResult> FetchArticlesAsync(int pageNumber = 1, int pageSize = Constants.DefaultArticlesPageSize)
        {
            var result           = new FetchArticlesResult(pageNumber, pageSize);
            var favoritesService = DependencyService.Resolve <IFavoritesService>();
            var favorites        = favoritesService.Get()
                                   .Select(f => new ArticleViewModel(f))
                                   .ToList();

            if (favorites != null)
            {
                result.Articles   = favorites;
                result.TotalCount = favorites.Count;
            }
            ;

            return(Task.FromResult(result));
        }
Пример #4
0
        protected async override Task <FetchArticlesResult> FetchArticlesAsync(int pageNumber = 1, int pageSize = Constants.DefaultArticlesPageSize)
        {
            var result = new FetchArticlesResult(pageNumber, pageSize);

            if (string.IsNullOrWhiteSpace(SearchTerm))
            {
                return(result);
            }

            System.Diagnostics.Debug.WriteLine($"{GetType().Name} FetchArticlesAsync for [{SearchTerm}] Search Term");
            var articles = await NewsDataService.FetchArticlesBySearchQuery(SearchTerm);

            if (articles?.Articles != null)
            {
                result.Articles   = articles.Articles.Select(a => new ArticleViewModel(a)).ToList();
                result.TotalCount = articles.TotalCount;
            }

            return(result);
        }