private void GetPackagesForLatestUsed() { ModelPackageUpgradeList = ModelFlatPackageList.Select(package => new ModelPackageUpgrade { Upgrade = false, PackageName = package.PackageName, Version = package.Version.ToString() }).ToList(); var packagesWithMultipleVersions = ModelPackageUpgradeList.Distinct(new DistinctPackageUpgradeComparer()).GroupBy(x => x.PackageName).Where(y => y.Count() > 1).ToList(); foreach (var package in packagesWithMultipleVersions) { var multipleVersionPackageList = ModelPackageUpgradeList.FindAll(x => x.PackageName == package.Key); var latestVersion = new Version(0, 0, 0); foreach (var foundPackage in multipleVersionPackageList) { if (new Version(foundPackage.Version) > latestVersion) { latestVersion = new Version(foundPackage.Version); } } var outOfDatePackagesCount = 0; foreach (var foundPackage in multipleVersionPackageList) { //if (!HideDetailedInfo) // Console.WriteLine($" {foundPackage.ParentProject} uses {foundPackage.Version} {foundPackage.TargetFramework}"); if (new Version(foundPackage.Version) != latestVersion) { outOfDatePackagesCount++; } } var mPackageUpgrade = new ModelPackageUpgrade { Upgrade = false, PackageName = package.Key, Version = latestVersion.ToString(), OutOfDatePackages = outOfDatePackagesCount }; DistinctPackagesToUpgradeList.Add(mPackageUpgrade); } }
private void GetPackagesForManual() { ModelPackageUpgradeList = ModelFlatPackageList.Select(package => new ModelPackageUpgrade { Upgrade = false, PackageName = package.PackageName, Version = package.Version.ToString() }).ToList(); var packagesWithMultipleVersions = ModelPackageUpgradeList.Distinct(new DistinctPackageUpgradeComparer()).GroupBy(x => x.PackageName).Where(y => y.Count() > 1).ToList(); foreach (var package in packagesWithMultipleVersions) { var multipleVersionPackageList = ModelPackageUpgradeList.FindAll(x => x.PackageName == package.Key); var latestVersion = new Version(0, 0, 0); foreach (var foundPackage in multipleVersionPackageList) { if (new Version(foundPackage.Version) > latestVersion) { latestVersion = new Version(foundPackage.Version); } } var outOfDatePackagesCount = 0; foreach (var foundPackage in multipleVersionPackageList) { if (new Version(foundPackage.Version) != latestVersion) { outOfDatePackagesCount++; } } ModelPackageUpgradeList.Where(x => x.PackageName == package.Key).ToList().ForEach(y => y.Version = latestVersion.ToString()); ModelPackageUpgradeList.Where(x => x.PackageName == package.Key).ToList().ForEach(y => y.OutOfDatePackages = outOfDatePackagesCount); } DistinctPackagesToUpgradeList = ModelPackageUpgradeList.Distinct(new DistinctPackageUpgradeNameComparer()).ToList(); }