示例#1
0
        public async Task LoadSavedArticlesAsync()
        {
            if (SavedArticles == null)
            {
                SavedArticles = new List <Article>();
            }
            try
            {
                var articles = await DatabaseOperations.GetInstance().GetSavedArticlesAsync();

                if (articles == null || articles.Count <= 0)
                {
                    return;
                }
                articles = articles.OrderByDescending(o => o.PublishDate).ToList();
                foreach (var article in articles.Where(article => SavedArticles.Find(o => o.ArticleId == article.ArticleId) == null))
                {
                    SavedArticles.Add(article);
                }
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("DataService:" + exception);
                }
            }
            NotifySavedArticlesChanged();
        }
示例#2
0
        public async Task DeleteSavedArticleAsync(Article article)
        {
            if (article == null)
            {
                return;
            }
            try
            {
                SavedArticles.Find(o => o.ArticleId == article.ArticleId).IsSaved = false;
                await SaveSavedArticlesAsync();

                SavedArticles.Remove(article);
                CurrentSavedArticle = SavedArticles.Count > 0 ? SavedArticles[0] : null;
                UpdateSavedArticleMoveStates();
                NotifyCurrentSavedArticleChanged(CurrentSavedArticle);
                NotifySavedArticlesChanged();
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("DataService:" + exception);
                }
            }
        }
示例#3
0
        public async Task SaveCurrentArticleAsync(Article article)
        {
            try
            {
                if (IsArticleAlreadySaved(article))
                {
                    return;
                }
                CanSaveCurrentArticle = false;
                article.IsSaved       = true;

                SavedArticles.Add(article);

                await SaveSavedArticlesAsync();

                NotifySavedArticlesChanged();
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("DataService:" + exception);
                }
            }
        }
示例#4
0
 public bool IsArticleAlreadySaved(Article article)
 {
     if (article != null && SavedArticles != null)
     {
         return(SavedArticles.Any(savedArticle => savedArticle.ArticleId == article.ArticleId));
     }
     return(false);
 }
示例#5
0
 public Article GetSavedArticlesFromId(string id)
 {
     if (SavedArticles != null)
     {
         CurrentSavedArticle = SavedArticles.Find(o => o.ArticleId == id);
         UpdateSavedArticleMoveStates();
         return(CurrentSavedArticle);
     }
     else
     {
         return(null);
     }
 }
示例#6
0
        public async Task <bool> SaveArticle(int userId, int articleId)
        {
            var save = new SavedArticles()
            {
                ArticleID = articleId,
                UsreID    = userId
            };

            await _savedArticlesRepository.CreateAsync(save);

            await _savedArticlesRepository.SaveAsync();

            return(true);
        }
示例#7
0
        public async void DeleteAllSavedArticles()
        {
            try
            {
                if (SavedArticles != null)
                {
                    SavedArticles.ForEach(o => o.IsSaved = false);
                }
                await SaveSavedArticlesAsync();

                SavedArticles.Clear();
                CurrentSavedArticle   = null;
                CanSaveCurrentArticle = true;
                NotifySavedArticlesChanged();
            }
            catch (Exception exception)
            {
                if (Debugger.IsAttached)
                {
                    Debug.WriteLine("DataService:" + exception);
                }
            }
        }