Example #1
0
 public int AddFeed(Feed feed)
 {
     feed.Id = _nextFeedId++;
     _feeds.Add(feed.Id, feed);
     _statistics.TotalFeeds++;
     return feed.Id;
 }
Example #2
0
 public FeedView(Feed feed)
 {
     Id = feed.Id;
     LongId = feed.LongId;
     Url = feed.Url;
     Title = feed.Title;
     ItemUrls = new HashSet<string>(feed.Items.Select(f => f.Url));
     Description = feed.Description;
 }
Example #3
0
 public void GetFeedByIdTest()
 {
     var model = new GeekStreamModel();
     var feed = new Feed {Title = "Feed title", LastCollected = DateTime.MinValue};
     var id = model.AddFeed(feed);
     Console.WriteLine(feed.Id);
     Assert.AreEqual(id, feed.Id);
     var collected = DateTime.Now;
     var cmd = new SetFeedsLastCollectedCommand(new[] {id}, collected);
     cmd.Execute(model);
     Assert.AreEqual(feed.LastCollected, collected);
 }
Example #4
0
        private void RemoveFeedFromSearchIndex(Feed feed)
        {
            var searchTermsToRemove = new List<string>();
            var itemsToRemove = new HashSet<FeedItem>(feed.Items);

            foreach (KeyValuePair<string, SortedSet<FeedItem>> kvp in _searchIndex)
            {
                var searchTerm = kvp.Key;
                var entrySet = kvp.Value;

                _statistics.TotalKeywords -= entrySet.RemoveWhere(feedItem => itemsToRemove.Contains(feedItem));
                if (entrySet.Count == 0) searchTermsToRemove.Add(searchTerm);
            }
            _statistics.UniqueKeywords -= searchTermsToRemove.Count;

            foreach (string searchTerm in searchTermsToRemove) _searchIndex.Remove(searchTerm);
        }
Example #5
0
 public bool TryGetFeedById(int id, out Feed feed)
 {
     feed = GetFeedById(id);
     return feed != null;
 }
Example #6
0
 private void CreateFeed(SyndicationFeed syndicationFeed, string url)
 {
     var feed = new Feed
                    {
                        PartitionId = 0,
                        Title = syndicationFeed.Title != null ? syndicationFeed.Title.Text : "Untitled feed",
                        Description = syndicationFeed.Description != null ? syndicationFeed.Description.Text : "No description",
                        ImageUrl = syndicationFeed.ImageUrl != null ? syndicationFeed.ImageUrl.ToString() : null,
                        LastCollected = DateTime.MinValue,
                        Url = url,
                        Created = DateTime.Now
                    };
     var command = new AddFeedCommand(feed);
     _geekStreamDb.Execute(command);
 }
Example #7
0
 public bool TryGetFeedById(int id, out Feed feed)
 {
     feed = GetFeedById(id);
     return(feed != null);
 }