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 } }; }