public async Task LoadTopStoriesArticlesAsync() { if (TopStoriesArticles == null) { TopStoriesArticles = new List <Article>(); } try { var articles = await DatabaseOperations.GetInstance().GetCategoryArticlesAsync(TopStories); if (articles != null && articles.Count > 0) { articles = articles.OrderByDescending(o => o.PublishDate).ToList(); foreach (var article in articles) { if (TopStoriesArticles.Find(o => o.ArticleId == article.ArticleId) == null) { TopStoriesArticles.Add(article); } } } } catch (Exception exception) { if (Debugger.IsAttached) { Debug.WriteLine("DataService:" + exception); } } IsRefreshingTopNewsArticles = false; NotifyDataRefreshed(DataType.TopStoriesArticles, true); IsTopStoriesLoaded = true; }
public void RefreshTopNews() { if (TopStoriesArticles == null) { TopStoriesArticles = new ObservableCollection <Article>(); } var expectedCount = TopStoriesArticles.Count + BatchSize; if (_dataService.TopStoriesArticles.Count > expectedCount) { var newArticles = _dataService.TopStoriesArticles.GetRange(TopStoriesArticles.Count, BatchSize); foreach (var article in newArticles) { if (TopStoriesArticles.FirstOrDefault(o => o.ArticleId == article.ArticleId) == null) { TopStoriesArticles.Add(article); } } } _moreTopStoriesAvailable = expectedCount == TopStoriesArticles.Count; }
public async Task RefreshTopArticlesAsync(bool isForce, int page = 0) { try { var presentTime = DateTime.UtcNow; var refresh = false; refresh = await CanRefreshCategoryAsync(TopStories); if (refresh || isForce || page != 0) { if (!IsRefreshingTopNewsArticles || isForce || page != 0) { IsRefreshingTopNewsArticles = true; var topNews = await _theHinduClient.GetTopArticlesAsync(page); if (topNews != null && topNews.Count > 0) { HeadLineArticle = topNews[0]; if (HeadLineArticle != null && !string.IsNullOrEmpty(HeadLineArticle.Thumbnail)) { HeadLineArticle.HdThumbnail = HeadLineArticle.Thumbnail.Replace("i.jpg", "e.jpg"); } topNews = topNews.OrderByDescending(o => o.PublishDate).ToList(); foreach (var newArticle in topNews) { newArticle.Category = TopStories; if (TopStoriesArticles.Find(o => o.ArticleId == newArticle.ArticleId) == null) { TopStoriesArticles.Add(newArticle); } else { var oldArticle = TopStoriesArticles.Find(o => o.ArticleId == newArticle.ArticleId); if (oldArticle != null && oldArticle.FullDescription != newArticle.FullDescription) { oldArticle.FullDescription = newArticle.FullDescription; } } } IsTopStoriesLoaded = true; await DatabaseOperations.GetInstance().UpdateCategoryLastAccessedValueAsync(TopStories, DateTime.UtcNow); SaveHeadLine(); await SaveTopStoriesArticlesAsync(); } } } } catch (Exception exception) { if (Debugger.IsAttached) { Debug.WriteLine("DataService:" + exception); } } TopStoriesArticles = TopStoriesArticles.OrderByDescending(o => o.PublishDate).ToList(); IsRefreshingTopNewsArticles = false; NotifyDataRefreshed(DataType.TopStoriesArticles, true); }