public ArchiveFeed CreateArchiveFeed(SyndicationFeed feed, FeedMapping currentMapping, FeedMapping nextMapping)
        {
            SyndicationFeed archive = feed.Clone(true);

            archive.GetSelfLink().Uri = archive.GetViaLink().Uri;
            archive.Links.Remove(archive.GetViaLink());
            archive.Links.Add(links.CreateNextArchiveLink(nextMapping.Id));
            archive.ElementExtensions.Add(new SyndicationElementExtension("archive", "http://purl.org/syndication/history/1.0", string.Empty));

            return new ArchiveFeed(archive, currentMapping.WithArchiveFileName());
        }
        public RecentEventsFeed CreateRecentEventsFeed(FeedMapping mapping, IPrevArchiveLinkGenerator prevArchiveLinkGenerator)
        {
            SyndicationFeed feed = new SyndicationFeed
                                       {
                                           Id = new UniqueId(Guid.NewGuid()).ToString(),
                                           Title = SyndicationContent.CreatePlaintextContent(Title),
                                           Generator = ServiceName,
                                           LastUpdatedTime = DateTime.Now,
                                           Items = new List<SyndicationItem>()
                                       };

            feed.Authors.Add(new SyndicationPerson {Name = ServiceName});

            feed.Links.Add(links.CreateRecentFeedSelfLink());
            feed.Links.Add(links.CreateViaLink(mapping.Id));

            prevArchiveLinkGenerator.AddTo(feed, links);

            return new RecentEventsFeed(feed, mapping, this);
        }
 public RecentEventsFeed CreateNextRecentEventsFeed(FeedMapping mapping)
 {
     return CreateRecentEventsFeed(mapping.WithNextId(), new PrevArchiveLinkGenerator(mapping.Id));
 }
 public RecentEventsFeedBuilder WithId(int id)
 {
     feedMapping = new FeedMapping(new Id(id));
     return this;
 }
 public RecentEventsFeed(SyndicationFeed feed, FeedMapping mapping, FeedBuilder builder)
 {
     this.feed = feed;
     this.mapping = mapping;
     this.builder = builder;
 }
 public ArchiveFeed(SyndicationFeed feed, FeedMapping feedMapping)
 {
     this.feed = feed;
     this.feedMapping = feedMapping;
 }