public FeedProvisionEndpoint(IRepository<Content> contents, IUrlRegistry registry, ServerVariables vars, PaginationSettings pagination, SiteSettings site) { _contents = contents; _itemsToTake = pagination.ItemsPerFeed; _feedSetup = new FeedSetup { SiteMasterName = site.SiteAuthor, Title = site.SiteTitle, CopyrightNotice = site.SiteCopyright, UrlTemplate = registry.BuildAbsoluteUrlTemplate(vars, r => r.TemplateFor(new ContentId())) }; }
public FeedModel(FeedSetup feedSetup) { var items = feedSetup.Content .Select(vm => new SyndicationItem(vm.Title, vm.Teaser, new Uri(feedSetup.UrlTemplate.Replace("{Id}", vm.Id.ToString()))) { Id = vm.Id.ToString(), LastUpdatedTime = new DateTimeOffset(vm.Created) }); var lastUpdate = feedSetup.Content.Max(vm => vm.Created); _feed = new SyndicationFeed(items) { Id = feedSetup.FeedId, Title = new TextSyndicationContent(feedSetup.Title, TextSyndicationContentKind.Plaintext), LastUpdatedTime = new DateTimeOffset(lastUpdate), }; _feed.Authors.Add(new SyndicationPerson(null, feedSetup.SiteMasterName, null)); _feed.Copyright = new TextSyndicationContent(feedSetup.CopyrightNotice); _feedTypeToGenerate = feedSetup.FeedType; }