public void BeginLoad() { var client = new SyndicationClient(); client.BypassCacheOnRetrieve = true; client.RetrieveFeedAsync(_uri).AsTask().ContinueWith(t => { var feed = t.Result; Title = feed.Title.Text; Description = feed.Subtitle.Text; ImageUri = feed.ImageUri; foreach (var si in feed.Items) { var fi = new FeedItem(si); fi.LoadFullTextAsync(); RunActionOnGUIThread(() => { this._feedItems.Add(fi); }); } IsLoaded = true; }, TaskScheduler.Default); }
private static void SaveFeedItemToDB(Database db, int feedId, FeedItem feedItem) { var stmt = db.PrepareStatement("INSERT INTO feed_items (feed_id, title, uri, image_uri, summary, text) VALUES (?, ?, ?, ?, ?, ?)"); stmt.BindInt(1, feedId); stmt.BindText(2, feedItem.Title); stmt.BindText(3, feedItem.Link.AbsoluteUri); if (feedItem.ImageUri != null) { stmt.BindText(4, feedItem.ImageUri.AbsoluteUri); } stmt.BindText(5, feedItem.Summary); stmt.BindText(6, feedItem.FullText); stmt.Execute(); }
public void LoadNonGUI() { var client = new SyndicationClient(); client.BypassCacheOnRetrieve = true; try { var feed = client.RetrieveFeedAsync(_uri).AsTask().Result; Title = feed.Title.Text; Description = feed.Subtitle.Text; ImageUri = feed.ImageUri; foreach (var si in feed.Items) { var fi = new FeedItem(si); fi.LoadFullText(); this._feedItems.Add(fi); } IsLoaded = true; } catch { IsLoaded = false; } }
private static void LoadFeedItemsFor(Database db, int feedId, FeedInfo feedInfo) { var stmt = db.PrepareStatement("SELECT title, summary, uri, image_uri, text FROM feed_items where feed_id = ?"); stmt.BindInt(1, feedId); while (stmt.HasMore()) { FeedItem fi = new FeedItem( stmt.ColumnAsTextAt(0), stmt.ColumnAsTextAt(1), stmt.ColumnAsTextAt(2), stmt.ColumnAsTextAt(3), stmt.ColumnAsTextAt(4)); feedInfo.FeedItems.Add(fi); } }