Example #1
0
        /// <summary>
        /// Parses the supplied XML into an instance of
        /// <see cref="AtomFeed" />.
        /// </summary>
        /// <param name="xml">
        /// A string of characters containing the XML representation of an Atom Feed.
        /// </param>
        /// <param name="serializer">
        /// An <see cref="IContentSerializer" /> used to deserialize custom
        /// content to objects.
        /// </param>
        /// <returns>
        /// A new instance of <see cref="AtomFeed" /> containing the data from
        /// the supplied <paramref name="xml" />.
        /// </returns>
        /// <exception cref="System.ArgumentNullException">
        /// <paramref name="serializer" /> is <see langword="null" />.
        /// </exception>
        public static AtomFeed Parse(string xml, IContentSerializer serializer)
        {
            if (serializer == null)
            {
                throw new ArgumentNullException("serializer");
            }

            var sr = new StringReader(xml);

            try
            {
                using (var r = XmlReader.Create(sr))
                {
                    sr = null;
                    return(AtomFeed.ReadFrom(r, serializer));
                }
            }
            finally
            {
                if (sr != null)
                {
                    sr.Dispose();
                }
            }
        }
        private AtomFeed ReadIndex()
        {
            var indexAddress =
                new Uri(((Guid)this.id).ToString(), UriKind.Relative);

            using (var r = this.storage.CreateFeedReaderFor(indexAddress))
                return(AtomFeed.ReadFrom(r, this.serializer));
        }
        private AtomFeed GetPreviousPage(AtomFeed current)
        {
            var previousLink =
                current.Links.SingleOrDefault(l => l.IsPreviousLink);

            if (previousLink == null)
            {
                return(null);
            }

            using (var r = this.storage.CreateFeedReaderFor(previousLink.Href))
                return(AtomFeed.ReadFrom(r, this.serializer));
        }
 private AtomFeed ReadPage(Uri address)
 {
     using (var r = this.storage.CreateFeedReaderFor(address))
         return(AtomFeed.ReadFrom(r, this.serializer));
 }