Skip to content

Commit

Permalink
Detailed user assemblies summary
Browse files Browse the repository at this point in the history
  • Loading branch information
Nice3point committed Sep 8, 2024
1 parent 563b3b3 commit 37e85c2
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 7 deletions.
23 changes: 18 additions & 5 deletions source/DependenciesReport/Program.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Diagnostics;
using System.Globalization;
using System.Security.Principal;
using ConsoleTables;
using DependenciesReport;
using DependenciesReport.Models;

Expand All @@ -12,7 +13,7 @@
var dependenciesMaps = new List<List<DirectoryDescriptor>>();
foreach (var addinLocation in addinLocations)
{
summaryWriter.Write($"Revit version: {Path.GetFileName(addinLocation.Key)}");
summaryWriter.Write($"### Revit version: {Path.GetFileName(addinLocation.Key)} ###");
summaryWriter.WriteLine();

var addinDirectories = AddinUtilities.GetAddinDirectories(addinLocation);
Expand All @@ -22,20 +23,32 @@
if (dependenciesTable.Rows.Count == 0)
{
summaryWriter.Write("No conflicts detected.");
summaryWriter.WriteLine();
}
else
{
dependenciesMaps.Add(dependenciesMap);
summaryWriter.Write(dependenciesTable.ToMinimalString());
}

summaryWriter.WriteLine();
dependenciesMaps.Add(dependenciesMap);
}

summaryWriter.Write("### Detailed user assemblies summary ###");
summaryWriter.WriteLine();

foreach (var dependenciesMap in dependenciesMaps)
{
var assembliesTable = TableFormater.CreateAssembliesTable(dependenciesMap);
if (assembliesTable.Rows.Count > 0)
{
summaryWriter.Write(assembliesTable.ToMinimalString());
}
}

summaryWriter.Save();

Console.WriteLine($"Dependencies report saved: {reportPath}");
Console.WriteLine(@"Open the report? Y\N");
Console.WriteLine("Open the report? Y/N");
var response = Console.ReadLine();

if (string.Compare(response, "Y", StringComparison.OrdinalIgnoreCase) == 0)
Expand All @@ -49,7 +62,7 @@
});
}

Console.WriteLine(@"Try to fix dependencies and upgrade to the latest version? Y\N");
Console.WriteLine("Try to fix dependencies and upgrade to the latest version? Y/N");
response = Console.ReadLine();

if (string.Compare(response, "Y", StringComparison.OrdinalIgnoreCase) == 0)
Expand Down
23 changes: 21 additions & 2 deletions source/DependenciesReport/TableFormater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ public static ConsoleTable CreateReportTable(List<DirectoryDescriptor> dependenc
.SelectMany(directory => directory.Assemblies)
.Select(assembly => assembly.Name)
.Distinct()
.OrderBy(name => name)
.ToList();
.OrderBy(name => name);

var table = new ConsoleTable(new[] { "Dependency" }
.Concat(conflictMap.Select(directory => directory.Name))
Expand Down Expand Up @@ -68,4 +67,24 @@ private static List<DirectoryDescriptor> GetConflictMap(List<DirectoryDescriptor

return conflictDirectories;
}

public static ConsoleTable CreateAssembliesTable(List<DirectoryDescriptor> dependenciesMap)
{
var assembliesGroups = dependenciesMap
.SelectMany(descriptor => descriptor.Assemblies)
.GroupBy(descriptor => descriptor.Name)
.OrderBy(grouping => grouping.Key);

var table = new ConsoleTable("Assembly", "Path", "Version");

foreach (var assemblyGroup in assembliesGroups)
{
foreach (var (name, path, version) in assemblyGroup)
{
table.AddRow(name, path, version);
}
}

return table;
}
}

0 comments on commit 37e85c2

Please sign in to comment.