private void PrintPackageStatus(List <Package> packages, PackageNuGetInfo[] packageInfos) { var packageInfoByName = packageInfos.ToDictionary(packageInfo => packageInfo.Name); var statuses = packages.Select(package => PackageStatus.GetStatus(package, packageInfoByName[package.Name])); var inconsistentVersions = new HashSet <string>(); foreach (var group in statuses.GroupBy(status => status.PackageNuGetInfo.Name)) { if (group.Select(package => package.Package.CurrentVersion).Distinct().Count() > 1) { inconsistentVersions.Add(group.Key); } } var orderedStatuses = statuses.OrderBy(status => status.PackageNuGetInfo.Name).ThenBy(status => status.Package.ProjectName); TableDrawer.DrawTable(orderedStatuses, new[] { "Package", "Project", "Current", "Wanted", "Stable", "Latest" }, status => { // Different versions of one and the same package detected if (inconsistentVersions.Contains(status.PackageNuGetInfo.Name)) { return(AnsiColor.Red); } return(status.GetStatusColor()); }, status => status.PackageNuGetInfo.Name, status => status.Package.ProjectName, status => status.Package.CurrentVersion, status => status.WantedVersion, status => status.StableVersion, status => status.LatestVersion ); }
public void TestNoStable() { var status = PackageStatus.GetStatus(Current("3.2.1-alpha"), Available("3.2.1-beta", "3.2.1-alpha")); AssertVersions(status, AnsiColor.Yellow, "3.2.1-beta", null, "3.2.1-beta"); }
public void TestLaterStableWithCurrentPrelease() { var status = PackageStatus.GetStatus(Current("3.2.1-alpha"), Available("3.2.1", "3.2.1-alpha", "3.2.0")); AssertVersions(status, AnsiColor.Orange, "3.2.1", "3.2.1", "3.2.1"); }
public void TestLaterMajor() { var status = PackageStatus.GetStatus(Current("3.2.1"), Available("4.0.0", "3.2.2", "3.2.1")); AssertVersions(status, AnsiColor.Orange, "3.2.2", "4.0.0", "4.0.0"); }
public void TestLaterStable() { var status = PackageStatus.GetStatus(Current("3.2.1"), Available("3.2.2", "3.2.1", "3.2.0")); AssertVersions(status, AnsiColor.Yellow, "3.2.2", "3.2.2", "3.2.2"); }
public void TestNoLaterStable() { var status = PackageStatus.GetStatus(Current("3.2.1"), Available("3.2.2-preview", "3.2.1", "3.2.0")); AssertVersions(status, AnsiColor.White, "3.2.1", "3.2.1", "3.2.2-preview"); }