четверг, 10 мая 2007 г.

Код на c# 3

Log("Refresher Strated");
var db = new RssDataDataContext();
foreach (var dbFeed in db.feeds)
{
Log("Proceed " + dbFeed.title);
XFeed webFeed;
try
{
webFeed = XFeed.Load(dbFeed.url);
}
catch (Exception ex)
{
Log("Error proceed feed: " + ex.Message);
continue;
}

foreach (var webItem in webFeed.Items)
{
var count = (from c in db.items
where c.title == webItem.Title && c.text == webItem.Text
select c).Count();
if (count > 0)
{
Log("Duplicated item");
continue;
}
var dbItem = new item();
dbItem.ststus = "Added";
dbItem.text = webItem.Text;
dbItem.title = webItem.Title;
dbFeed.items.Add(dbItem);
Log("Added item.");
}
}
db.SubmitChanges();
Код бежит по записям в базе из таблицы с фидами. Выдирает урл-ы потом загружает фид. И кидает записи фида в базу причем перед этим он проверяет не была ли она уже загружена строчками: (from c in db.items where c.title == webItem.Title && c.text == webItem.Text select c).Count();
Весь проект занял буквально минуты.

Комментариев нет:

Linux.org.ru News

Вебпланета - все новости

CNews - Издание о высоких технологиях