private string GetSdkStatusMessage(NetSdkInfo sdk) { if (BundleIsEndOfLife(sdk)) { return(string.Format(LocalizableStrings.OutOfSupportMessage, $"{sdk.Version.Major}.{sdk.Version.Minor}")); } else if (BundleIsMaintenance(sdk)) { return(string.Format(LocalizableStrings.MaintenanceMessage, $"{sdk.Version.Major}.{sdk.Version.Minor}")); } else if (NewerSdkPatchExists(sdk)) { return(string.Format(LocalizableStrings.NewPatchAvaliableMessage, NewestSdkPatchVersion(sdk))); } else { return(LocalizableStrings.BundleUpToDateMessage); } }
private ReleaseVersion NewestSdkPatchVersion(NetSdkInfo bundle) { var product = _productCollection.First(product => product.ProductVersion.Equals($"{bundle.Version.Major}.{bundle.Version.Minor}")); if (product.LatestSdkVersion.SdkFeatureBand == bundle.Version.SdkFeatureBand) { // This is the latest feature band return(product.LatestSdkVersion); } else { // Fetch detailed product release information var productReleases = _productCollectionProvider.GetProductReleases(product); var featureBandVersions = productReleases .SelectMany(release => release.Sdks) .Select(sdk => sdk.Version) .Where(sdkVersion => sdkVersion.SdkFeatureBand == bundle.Version.SdkFeatureBand); return(featureBandVersions.FirstOrDefault()); } }
private bool NewerSdkPatchExists(NetSdkInfo bundle) { var newestPatchVesion = NewestSdkPatchVersion(bundle); return(newestPatchVesion == null ? false : newestPatchVesion > bundle.Version); }