/// <summary> /// Gets the releases. /// </summary> public void GetReleases() { List <Release> releases = new List <Release>(); Regex versionPattern = new Regex(@"v([0-9]|\.)+"); FeedRepository repository = new FeedRepository(this.FeedUrl); var posts = repository.GetPosts(); foreach (var feedItem in posts) { Release release = new Release() { Version = new Version() }; Match result = versionPattern.Match(feedItem.Id); if (result.Success) { Version releaseVersion = new Version(result.Value.Replace('v', ' ')); if (releaseVersion > release.Version) { release.Version = releaseVersion; release.Title = feedItem.Title.Text.Trim(); release.Description = feedItem.Content.StripHtml().Trim(); release.DownloadUrl = new Uri($"https://github.com{feedItem.Links[0].Uri}"); release.ReleaseDate = feedItem.LastUpdatedTime.Date; release.Product = (ProductType)releaseVersion.Major; this.Releases.Add(release); } } } }
/// <summary> /// Gets the releases. /// </summary> public void GetReleases() { List <Release> releases = new List <Release>(); Regex versionPattern = new Regex(@"v([0-9]|\.)+"); FeedRepository repository = new FeedRepository(this.FeedUrl); var posts = repository.GetPosts().Where(f => f.Title.Text.StartsWith(RELEASE_PREFIX)); foreach (var feedItem in posts) { Release release = new Release() { Version = new Version() }; Match result = versionPattern.Match(feedItem.Title.Text); if (result.Success) { Version releaseVersion = new Version(result.Value.Replace('v', ' ')); if (releaseVersion > release.Version) { release.Version = releaseVersion; release.Title = feedItem.Title.Text.Substring(feedItem.Title.Text.IndexOf(':') + 1).Trim(); release.Description = string.Empty; release.DownloadUrl = feedItem.Links[0].Uri; release.ReleaseDate = feedItem.PublishDate.Date; release.Product = (ProductType)releaseVersion.Major; releases.Add(release); } } } // Get distinct releases foreach (var group in releases.GroupBy(r => r.Title)) { Release rel = group.OrderBy(r => r.ReleaseDate).FirstOrDefault(); this.Releases.Add(rel); } }