示例#1
0
        private void LoadFeed()
        {
            FeedEntries.Clear();

            if (string.IsNullOrWhiteSpace(this.feedUri))
            {
                return;
            }

            var versionFeed = VersionFeedUtils.LoadVersionFeed(this.feedUri, App.Instance.Version);

            if (versionFeed == null)
            {
                return;
            }

            foreach (var entry in versionFeed.Entries)
            {
                if (entry == null)
                {
                    continue;
                }

                FeedEntries.Add(entry);
            }

            SelectedFeedEntry = FeedEntries.OrderByDescending(e => e.Updated).FirstOrDefault();
        }
示例#2
0
        public static VersionFeed LoadVersionFeed(string inputUri, string currentVersion)
        {
            try
            {
                var reader = XmlReader.Create(inputUri);
                var feed   = SyndicationFeed.Load(reader);

                var versionFeed = new VersionFeed
                {
                    Id       = feed.Id,
                    Title    = feed.Title?.Text,
                    SubTitle = feed.Description?.Text,
                    Link     = feed.Links?[0].Uri,
                    Updated  = feed.LastUpdatedTime.ToLocalTime(),
                };

                //Loop through all items in the SyndicationFeed
                foreach (var item in feed.Items)
                {
                    var textContent = item.Content as TextSyndicationContent;

                    var versionFeedEntry = new VersionFeedEntry
                    {
                        Id      = item.Id,
                        Title   = item.Title?.Text,
                        Summary = item.Summary?.Text,
                        Link    = item.Links?[0].Uri,
                        Updated = item.LastUpdatedTime.ToLocalTime(),
                        Content = textContent?.Text,
                        Author  = item.Authors?[0].Name,

                        IsCurrent = (item.Summary?.Text ?? string.Empty).Equals(currentVersion),
                    };
                    versionFeed.Entries.Add(versionFeedEntry);
                }

                return(versionFeed);
            }
            catch (Exception)
            {
                return(new VersionFeed());
            }
        }