示例#1
0
        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();
 }
示例#3
0
        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);
            }
        }