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
                                  );
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
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");
        }
Esempio n. 6
0
        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");
        }