Пример #1
0
        /// <summary>
        /// Gets a list of versions from nuget and computes the latest version
        /// </summary>
        /// <param name="packageName"></param>
        /// <param name="currentVersion"></param>
        /// <returns>latestVersion</returns>
        public async Task <string> GetLatestNugetVersion(string packageName, string currentVersion)
        {
            var nugetPackageVersions = await _nugetService.GetPackageVersions(packageName);

            var latestVersion = nugetPackageVersions.LastOrDefault()?.ToString();

            if (latestVersion != null)
            {
                //check if current version is preview, return latest version, whether preview or non-preview
                if (currentVersion.Contains("preview") && latestVersion.Contains("preview"))
                {
                    return(latestVersion);
                }
                //check if only latest version is preview, set to latest non-preview version
                else if (latestVersion.Contains("preview"))
                {
                    var nonPreviewVersions = new List <string>();
                    foreach (var version in nugetPackageVersions)
                    {
                        if (!version.ToString().Contains("preview"))
                        {
                            nonPreviewVersions.Add(version.ToString());
                        }
                    }
                    latestVersion = nonPreviewVersions.LastOrDefault();
                }
            }
            return(latestVersion);
        }
Пример #2
0
        /// <summary>
        /// Gets a list of versions from nuget and computes the latest version
        /// </summary>
        /// <param name="packageName"></param>
        /// <param name="currentVersion"></param>
        /// <returns>latestVersion</returns>
        public async Task <string> GetLatestNugetVersion(string packageName, string currentVersion)
        {
            var nugetPackageVersions = await _nugetService.GetPackageVersions(packageName);

            var latestVersion = nugetPackageVersions.LastOrDefault()?.ToString();

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

            //check if current version is preview, return latest version, whether preview or non-preview
            if (currentVersion.Contains("preview") && latestVersion.Contains("preview"))
            {
                return(latestVersion);
            }
            //check if only latest version is preview, set to latest non-preview version
            else if (latestVersion.Contains("preview"))
            {
                var nonPreviewVersions = (from version in nugetPackageVersions where !version.ToString()
                                          .Contains("preview") select version.ToString()).ToList();
                latestVersion = nonPreviewVersions.LastOrDefault();
            }
            return(latestVersion);
        }