private void WriteAtomFeed(IPublicationFeed feed, Stream writeStream) { var formatter = new Atom10FeedFormatter(feed.Syndicate()); using (var writer = XmlWriter.Create(writeStream)) { formatter.WriteTo(writer); } }
/// <summary> /// Writes the atom feed to the specified stream. /// </summary> /// <param name="feed">The publication feed containing the entries.</param> /// <param name="writeStream">The output write stream.</param> /// <param name="contentType">The media type header requested.</param> protected virtual void WriteFeed(IPublicationFeed feed, Stream writeStream, string contentType) { var syndicationfeed = feed.Syndicate(); syndicationfeed.Items = feed.Items.Select(x => x.Syndicate()); var formatter = GetFormatter(contentType, syndicationfeed); using (var writer = XmlWriter.Create(writeStream, new XmlWriterSettings() { Indent = true })) { formatter.WriteTo(writer); } }
public static SyndicationFeed Syndicate(this IPublicationFeed feed) { var atomFeed = new SyndicationFeed { Title = new TextSyndicationContent(feed.Title), Items = feed.Items.Select(i => i.Syndicate()), Description = new TextSyndicationContent(feed.Summary ?? string.Empty) }; atomFeed.Authors.Add(new SyndicationPerson { Name = feed.Author }); foreach (var link in feed.Links) { atomFeed.Links.Add(new SyndicationLink(new Uri(link.Href)) { RelationshipType = link.Rel, Title = link.Title }); } return(atomFeed); }
/// <summary> /// Converts the specified feed into Atom syntax. /// </summary> /// <param name="feed">The feed.</param> /// <returns>A syndicated feed.</returns> public static SyndicationFeed Syndicate(this IPublicationFeed feed) { Throw.IfArgumentNull(feed, "feed"); var atomFeed = new SyndicationFeed { Title = new TextSyndicationContent(feed.Title), Description = new TextSyndicationContent(feed.Summary ?? string.Empty) }; atomFeed.Authors.Add(new SyndicationPerson { Name = feed.Author }); feed.Links.ForEach(link => atomFeed.Links.Add(new SyndicationLink(new Uri(link.Href)) { RelationshipType = link.Rel, Title = link.Title })); return(atomFeed); }