コード例 #1
0
        private void WriteAtomFeed(IPublicationFeed feed, Stream writeStream)
        {
            var formatter = new Atom10FeedFormatter(feed.Syndicate());

            using (var writer = XmlWriter.Create(writeStream)) {
                formatter.WriteTo(writer);
            }
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        private void WriteAtomFeed(IPublicationFeed feed, Stream writeStream)
        {
            var formatter = new Atom10FeedFormatter(feed.Syndicate());

            using (var writer = XmlWriter.Create(writeStream))
            {
                formatter.WriteTo(writer);
            }
        }