public static IEnumerable<IModelNode> Merge(this IEnumerable<IModelNode> vertices)
{
return vertices.GroupBy(x => new { x.QualifiedName, x.Type })
.Select(
x =>
new ModelNode(
x.First().DisplayName,
x.Key.Type,
x.Select(y => y.Quality).GetQuality(),
x.Max(y => y.LinesOfCode),
x.Min(y => y.MaintainabilityIndex),
x.Max(y => y.CyclomaticComplexity),
x.SelectMany(y => y.Children).Merge().ToList()));
}