public void Create_a_feed_with_image() { var feed = CreateSimpleFeed(); feed.Image = new Image(new Uri("http://www.dotnetgeek.de/logo.png"), "dotnetgeek feed", new Uri("http://www.dotnetgeek.de")); var rss20Generator = new Rss20Generator(feed); var feedXml = rss20Generator.Process(); var expected = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">" + "<channel><title>dotnetgeek feed</title>" + "<atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://www.dotnetgeek.de/rss\" />" + "<link>http://www.dotnetgeek.de/rss</link>" + $"<lastBuildDate>Tue, 16 Aug 2016 00:00:00 {_dateTimeOffset}</lastBuildDate>" + "<language>de</language>" + "<copyright>2016 @ www.dotnetgeek.com</copyright>" + "<generator>dng.Syndication</generator>" + "<description>Dotnet relevant topics</description>" + "<image>" + "<url>http://www.dotnetgeek.de/logo.png</url>" + "<title>dotnetgeek feed</title>" + "<link>http://www.dotnetgeek.de/</link>" + "</image>" + "<item>" + "<title>First Entry</title>" + "<guid>http://www.dotnetgeek.com/first-entry</guid>" + "<link>http://www.dotnetgeek.com/first-entry</link>" + "<description>Content</description>" + $"<pubDate>Tue, 16 Aug 2016 00:00:00 {_dateTimeOffset}</pubDate>" + "</item>" + "</channel></rss>"; Assert.Equal(expected, feedXml); }
public async Task WriteAsync(OutputFormatterWriteContext context) { using (var atomGenerator = new Rss20Generator(context.Object as Feed)) { context.HttpContext.Response.ContentType = MediaTypes.RssMediaType; await context.HttpContext.Response.WriteAsync(atomGenerator.Process()); } }
public override void WriteToStream(Type type, object value, Stream writeStream, HttpContent content) { if (!(value is Feed feed)) { return; } using (var streamWriter = new StreamWriter(writeStream)) { using (var rss20Generator = new Rss20Generator(feed)) { streamWriter.WriteLine(rss20Generator.Process()); } } }