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)); }
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)); }
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); }