public IEnumerable <QuoteFmItem> updateRecommendations() { decimal maxKnownId = 0; List <QuoteFmItem> newQuoteFmItems = new List <QuoteFmItem>(); if (Recommendations.Count > 0) { maxKnownId = Recommendations.Max(r => r.Id); } ListOfRecommendations listOfRecommendations = QuoteSharp.API.getRecommendationsListByUser(this.username); if (listOfRecommendations != null) { if (listOfRecommendations.entities.Count() > 0) { IEnumerable <Recommendation> newRecommendations = listOfRecommendations.entities.Where(r => r.id > maxKnownId); foreach (Recommendation recommendation in newRecommendations) { QuoteFmItem newItem = QuoteFmItem.createFromApi(recommendation); if (newItem != null) { Recommendations.Add(newItem); newQuoteFmItems.Add(newItem); } } } } return(newQuoteFmItems); }
public static QuoteFmItem createFromApi(Recommendation recommendation) { if (recommendation == null) { return(null); } QuoteFmItem item = new QuoteFmItem(); // Created At is missing! if (recommendation.article != null) { item.CreatedAt = recommendation.article.created.Value; } else { item.CreatedAt = DateTime.Now; } item.AuthorName = recommendation.user.username; item.Id = recommendation.id; item.Text = recommendation.quote; item.QuoteType = QuoteTypes.Recommendation; item.ClientName = recommendation.domain.name; item.ArticleLink = recommendation.article.url; item.Author = QuoteFmUser.createFromApi(recommendation.user); return(item); }
void backgroundWorkerRecommendations_ProgressChanged(object sender, ProgressChangedEventArgs e) { QuoteFmItem item = e.UserState as QuoteFmItem; if (item != null) { Recommendations.Add(item); if (InitialUpdateDoneForRecommendations) { AppController.Current.sendNotification("QUOTE.fm " + User.username + " Recommendations", item.Author.Fullname, item.QuotedText, item.Author.Avatar, item); } } }
void backgroundWorkerCategories_DoWork(object sender, DoWorkEventArgs e) { if (e != null) { if (e.Cancel) { return; } } foreach (KeyValuePair <decimal, ThreadSaveObservableCollection <QuoteFmItem> > keyValuePair in Collections) { List <decimal> catId = new List <decimal>(); catId.Add(keyValuePair.Key); ListOfArticles entries = QuoteSharp.API.getArticlesListByCategories(catId); if (entries != null) { if (entries.entities != null) { foreach (Article article in entries.entities) { QuoteFmItem item = QuoteFmItem.createFromApi(article); if (item != null) { item.IsArticleOfCategory = true; item.CategoryTitle = CategoryNames[keyValuePair.Key]; item.QuoteType = QuoteFmItem.QuoteTypes.Recommendation; IEnumerable <QuoteFmItem> availableItems = keyValuePair.Value.Where(i => i.Id == item.Id && i.IsArticleOfCategory); if (availableItems.Count() > 0) { continue; } backgroundWorkerCategories.ReportProgress(100, new KeyValuePair <decimal, QuoteFmItem>(keyValuePair.Key, item)); } } } } } }
public static QuoteFmItem createFromApi(Article article) { if (article == null) { return(null); } if (article.topquote == null) { return(null); } QuoteFmItem item = new QuoteFmItem(); item.CreatedAt = article.created.Value; item.Id = article.id; item.AuthorName = article.topquote.user.fullname; item.Text = article.topquote.quote; item.QuoteType = QuoteTypes.Recommendation; item.ClientName = article.topquote.domain.name; item.ArticleLink = article.url; item.Author = QuoteFmUser.createFromApi(article.topquote.user); return(item); }