public static async Task <SyndicationFeed> LoadAsync(XmlReader reader, Rss20FeedFormatter Rssformatter, Atom10FeedFormatter Atomformatter, CancellationToken ct) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } XmlReaderWrapper wrappedReader = XmlReaderWrapper.CreateFromReader(reader); Atom10FeedFormatter atomSerializer = Atomformatter; if (atomSerializer.CanRead(wrappedReader)) { await atomSerializer.ReadFromAsync(wrappedReader, new CancellationToken()); return(atomSerializer.Feed); } Rss20FeedFormatter rssSerializer = Rssformatter; if (rssSerializer.CanRead(wrappedReader)) { await rssSerializer.ReadFromAsync(wrappedReader, new CancellationToken()); return(rssSerializer.Feed); } throw new XmlException(string.Format(SR.UnknownFeedXml, wrappedReader.LocalName, wrappedReader.NamespaceURI)); }
public async Task<Update> CheckForUpdatesAsync(string updateUrl, UpdateFilter updateFilter) { Debug.Assert(!String.IsNullOrWhiteSpace(updateUrl)); var reader = XmlReader.Create(updateUrl); var formatter = new Atom10FeedFormatter(); await formatter.ReadFromAsync(reader); return (from i in formatter.Feed.Items let u = UpdateHelper.FromSyndicationItem(i) where u.Version > Assembly.GetExecutingAssembly().GetName().Version && ((int)updateFilter & (int)u.ReleaseStatus) != 0 orderby u.LastUpdatedTime descending select u).FirstOrDefault(); }
public static async Task <TSyndicationFeed> LoadAsync <TSyndicationFeed>(XmlReader reader, CancellationToken ct) where TSyndicationFeed : SyndicationFeed, new() { Atom10FeedFormatter <TSyndicationFeed> atomSerializer = new Atom10FeedFormatter <TSyndicationFeed>(); if (atomSerializer.CanRead(reader)) { await atomSerializer.ReadFromAsync(reader, ct).ConfigureAwait(false); return(atomSerializer.Feed as TSyndicationFeed); } Rss20FeedFormatter <TSyndicationFeed> rssSerializer = new Rss20FeedFormatter <TSyndicationFeed>(); if (rssSerializer.CanRead(reader)) { await rssSerializer.ReadFromAsync(reader, ct).ConfigureAwait(false); return(rssSerializer.Feed as TSyndicationFeed); } throw new XmlException(SR.Format(SR.UnknownFeedXml, reader.LocalName, reader.NamespaceURI)); }