Table of Contents

Class SolutionStats

Namespace
ProjGraph.Core.Models
Assembly
ProjGraph.Core.dll

Aggregated metrics snapshot for one solution or project analysis run.

public record SolutionStats : IEquatable<SolutionStats>
Inheritance
SolutionStats
Implements
Inherited Members

Constructors

SolutionStats(string, string, int, IReadOnlyDictionary<string, int>, DependencyDepthStats, IReadOnlyList<HotspotProject>, bool)

Aggregated metrics snapshot for one solution or project analysis run.

public SolutionStats(string SolutionName, string SolutionPath, int TotalProjectCount, IReadOnlyDictionary<string, int> TypeBreakdown, DependencyDepthStats DepthStats, IReadOnlyList<HotspotProject> HotspotProjects, bool HasCycles)

Parameters

SolutionName string

The name of the analysed solution or project.

SolutionPath string

The absolute path to the analysed file.

TotalProjectCount int

Number of non-Package projects in the graph.

TypeBreakdown IReadOnlyDictionary<string, int>

Count per project type. Keys are ProjectType names (Library, Executable, Test, Other).

DepthStats DependencyDepthStats

Aggregate dependency depth statistics. All values are null when HasCycles is true.

HotspotProjects IReadOnlyList<HotspotProject>

Top-N most directly-referenced projects, ranked descending by direct in-degree.

HasCycles bool

true if a dependency cycle was detected in the graph. When true, DepthStats values are all null.

Properties

DepthStats

Aggregate dependency depth statistics. All values are null when HasCycles is true.

[JsonPropertyName("depthStats")]
public DependencyDepthStats DepthStats { get; init; }

Property Value

DependencyDepthStats

HasCycles

true if a dependency cycle was detected in the graph. When true, DepthStats values are all null.

[JsonPropertyName("hasCycles")]
public bool HasCycles { get; init; }

Property Value

bool

HotspotProjects

Top-N most directly-referenced projects, ranked descending by direct in-degree.

[JsonPropertyName("hotspotProjects")]
public IReadOnlyList<HotspotProject> HotspotProjects { get; init; }

Property Value

IReadOnlyList<HotspotProject>

SolutionName

The name of the analysed solution or project.

[JsonPropertyName("solutionName")]
public string SolutionName { get; init; }

Property Value

string

SolutionPath

The absolute path to the analysed file.

[JsonPropertyName("solutionPath")]
public string SolutionPath { get; init; }

Property Value

string

TotalProjectCount

Number of non-Package projects in the graph.

[JsonPropertyName("totalProjectCount")]
public int TotalProjectCount { get; init; }

Property Value

int

TypeBreakdown

Count per project type. Keys are ProjectType names (Library, Executable, Test, Other).

[JsonPropertyName("typeBreakdown")]
public IReadOnlyDictionary<string, int> TypeBreakdown { get; init; }

Property Value

IReadOnlyDictionary<string, int>