//private static FeedsDB db = new FeedsDB(); public static void CreateNewFeed(Feed newFeed) { using (FeedsDB db = new FeedsDB()) { if (db.Feeds.Where(r => r.Url == newFeed.Url && r.UserName == newFeed.UserName).Count() > 0) { // already exists // TODO: give user error message } else { Uri feeduri = new Uri(newFeed.Url); IFeedFactory factory = new HttpFeedFactory(); IFeed feed = factory.CreateFeed(feeduri); if (feed != null) { newFeed.LastUpdated = feed.LastUpdated; db.Feeds.Add(newFeed); db.SaveChanges(); // save.. to get id /* IFeed members... * FeedType FeedType * string FeedUri * string Generator * List<BaseFeedItem> Items * DateTime LastUpdated * string Link * string Title */ foreach (BaseFeedItem feedItem in feed.Items) { /* IFeedItem members... * string Author * IList<string> Categories * string Content * DateTime DatePublished * string Id * string Link * string Title */ if (db.FeedItems.Where(r => r.FeedId == newFeed.ID && r.ItemId == feedItem.Id).Count() == 0) { FeedItem newItem = new FeedItem(); newItem.Read = false; newItem.FeedId = newFeed.ID; newItem.ItemId = feedItem.Id; newItem.Text = feedItem.Content; newItem.Title = feedItem.Title; newItem.ItemUrl = feedItem.Link; newItem.DatePublished = feedItem.DatePublished; db.FeedItems.Add(newItem); } } db.SaveChanges(); } else { // bad url??? // TODO: give user error message } } } }