andrena.Usus.net.Core.Metrics.CreateGraph.WithNamespacesOf C# (CSharp) Method

WithNamespacesOf() public static method

public static WithNamespacesOf ( andrena.Usus.net.Core.Reports.MetricsReport metrics ) : MutableGraph
metrics andrena.Usus.net.Core.Reports.MetricsReport
return MutableGraph
        public static MutableGraph<NamespaceMetricsWithTypeMetrics> WithNamespacesOf(MetricsReport metrics)
        {
            var namespaceGraph = metrics.GraphOfTypes.Cast(t => t.AsNamespaceWithTypes(), n => n.HasName);
            foreach (var namespaceGroup in namespaceGraph.Vertices.GroupBy(n => n.Namespace.Name))
                namespaceGraph.Reduce(namespaceGroup.AsNamespaceWithTypes(), namespaceGroup);
            return namespaceGraph;
        }

Usage Example

 public static void Of(MetricsReport metrics)
 {
     metrics.GraphOfNamespaces = CreateGraph.WithNamespacesOf(metrics);
     metrics.SetNamespacesWithCyclicDependencies();
 }