All entries for Thursday 16 March 2006
March 16, 2006
That above is using C#3.0 with LINQ to search for all items from all feeds that were published after yesterday. The results are also sorted by title.
FeedFolder folder = FeedFolder.GetRoot();
DateTime yesterday = DateTime.Now.Subtract(TimeSpan.FromDays(1));
var allItems = folder.AllFeeds.SelectMany
(f => f.Items);
var items =
from item in allItems
where item.PubDate > yesterday
foreach (var item in items)
Note how none of that required adding sort or filter code to the object model! LINQ is totally awesome!
I have been working on the managed wrapper for the Windows RSS API. The adapter layer is able to pull all the folders, feeds and items across into my object model. This can then be traversed using standard .NET foreach constructs, or even LINQ!
The wrapper is two-way, in that changes made to certain properties are pushed back to the Windows RSS store. I can even add new feeds and folders.
I am also working on the eventing system to receive notifications when the RSS store changes. These events will be pushed up through my model so .NET applications can respond. I'm still working the kinks out of the COM event handlers. I'm not sure if I'm hitting beta bugs, or if my code is wrong…
Here's a little taster of the wrapper in action:
FeedFolder root = FeedFolder.GetRoot();
root.FeedAdded += delegate(object sender, FeedAddedEventArgs e)
Console.WriteLine("Feed added: " + e.NewFeed.Url.ToString());
foreach (Feed feed in root.AllFeeds)
foreach (Item item in feed.Items)
Console.WriteLine(" " + item.Title);
FeedFolder folder = root.AddSubFolder("Hello World");
folder.AddFeed("Me", new Uri("http://blogs.warwick.ac.uk/andrewdavey/?rss=rss_2_0"));