public CollectionResponse<FeedItem> GetFeedItems(Feed feed)
        {
            var factory = new HttpFeedFactory();
            try
            {
                var rssFeed = factory.CreateFeed(new Uri(feed.Url));

                var feedItems = rssFeed.Items.ConvertAll(i => new FeedItem
                {
                    RssId = !string.IsNullOrEmpty(i.Id) ? i.Id : i.Title,
                    Title = i.Title,
                    FeedId = feed.Id,
                    Url = i.Link,
                    Author = i.Author,
                    Content = i.Content,
                    DatePublished = i.DatePublished
                });
                return ResponseBuilder.BuildCollectionResponse(feedItems, ErrorLevel.None);
            }
            catch (InvalidFeedXmlException ex)
            {
                return ResponseBuilder.BuildCollectionResponse<FeedItem>(ErrorLevel.Critical,
                    string.Format("Failed to retrieve feed at URL: {0}", feed.Url), ex);
            }
        }
 public SingleResponse<Feed> UpdateFeed(Feed feed)
 {
     try
     {
         var ravenFeed = Mapper.Map<RavenFeed>(feed);
         _database.Store(ravenFeed);
         return ResponseBuilder.BuildSingleResponse(feed, ErrorLevel.None);
     }
     catch (Exception ex)
     {
         return ResponseBuilder.BuildSingleResponse(feed, ErrorLevel.Critical,
             string.Format("Fatal error updating feed: {0}", ex), ex);
     }
 }
 public CollectionResponse<UserFeed> GetUserFeedItems(Feed feed)
 {
     //CollectionResponse<ClientConnection> connectionsResponse = _clientCommunication.GetAllConnections();
     //var connections = connectionsResponse.Data;
     //try
     //{
     //    var userFeeds = _database.QueryWithChildren<Feed, ClientConnection>(feed.Id, u => u.);
     //    return new CollectionResponse<Feed>
     //    {
     //        Data = userFeeds,
     //        Status = new Status
     //        {
     //            ErrorLevel = ErrorLevel.None
     //        }
     //    };
     //}
     //catch (Exception ex)
     //{
     //    return new CollectionResponse<Feed>
     //    {
     //        Data = new List<Feed>(),
     //        Status = new Status
     //        {
     //            ErrorLevel = ErrorLevel.Critical,
     //            ErrorMessage = string.Format("Fatal error getting feeds: {0}", ex),
     //            ErrorException = ex
     //        }
     //    };
     //}
     return new CollectionResponse<UserFeed>
         {
             Data = new List<UserFeed>
                 {
                     new UserFeed
                         {
                             Feed = feed,
                             RavenUserId = "ravenuser/1",
                             UnreadCount = new Random().Next(1, 10)
                         },
                     new UserFeed
                         {
                             Feed = feed,
                             RavenUserId = "ravenuser/2",
                             UnreadCount = new Random().Next(11,20)
                         }
                 },
             Status = new Status
                 {
                     ErrorLevel = ErrorLevel.None
                 }
         };
 }