public async Task LoadStarredNews() { StarredLoading = true; var list = await _starredCacheHelper.ReadStarredCache(); if (list == null || list.Count <= 0) { StarredLoading = false; return; } var mustAdd = new List <NewsModel>(); if (StarredNews != null && StarredNews.Count > 0) { foreach (var item in list) { var exists = StarredNews.FirstOrDefault(n => n.Title == item.Title); if (exists == null) { mustAdd.Add(item); } } if (mustAdd.Count > 0) { list = mustAdd; } else { return; } } foreach (var item in list) { var toAdd = item; var exists = News.FirstOrDefault(n => n.Title == item.Title); if (exists != null) { toAdd = exists; } toAdd.Starred = true; StarredNews.Add(toAdd); } StarredLoading = false; }
private async Task <bool> StarNews(NewsModel starred) { if (starred == null || StarredNews.Contains(starred)) { return(false); } if (starred.NewsContent == null || starred.NewsContent.Count <= 0) { await starred.LoadNewsBody(); } starred.Starred = true; StarredNews.Add(starred); SaveStarredCache(); return(true); }