Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        private bool UnstarNews(NewsModel unstarred)
        {
            if (unstarred == null || !StarredNews.Contains(unstarred))
            {
                return(false);
            }
            var result = StarredNews.Remove(unstarred);

            unstarred.Starred = false;

            if (result)
            {
                SaveStarredCache();
            }

            return(result);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        private async void SaveStarredCache()
        {
            var currentList = StarredNews.ToList();

            await _starredCacheHelper.SaveStarredCache(currentList);
        }