ArchiMetrics.Analysis.Model.SolutionVertexRepository.CreateProjectNode C# (CSharp) 메소드

CreateProjectNode() 개인적인 정적인 메소드

private static CreateProjectNode ( IProjectMetric projectMetric, IProjectMetric projectMetrics, EvaluationResult evaluationResults ) : ModelNode
projectMetric IProjectMetric
projectMetrics IProjectMetric
evaluationResults EvaluationResult
리턴 ModelNode
		private static ModelNode CreateProjectNode(
			IProjectMetric projectMetric,
			IProjectMetric[] projectMetrics,
			EvaluationResult[] evaluationResults)
		{
			var children = projectMetric.Dependencies.Select(
				y =>
				{
					var couplings =
						projectMetric.NamespaceMetrics.SelectMany(x => x.ClassCouplings)
							.Where(x => x.Assembly == y.GetFileNameWithoutExtension())
							.Select(x => new ModelNode(x.Namespace, NodeKind.Namespace, CodeQuality.Good, 0, 100, 0))
							.Cast<IModelNode>()
							.ToList();
					return new ModelNode(
						y.GetFileNameWithoutExtension(),
						NodeKind.Assembly,
						CodeQuality.Good,
						0,
						100,
						0,
						couplings);
				})
				.Concat(
					projectMetric.NamespaceMetrics.Select(
						namespaceMetric =>
						CreateNamespaceNode(
							namespaceMetric,
							projectMetrics,
							evaluationResults.Where(r => r.Namespace == namespaceMetric.Name))))
				.Merge()
				.ToList();
			return new ModelNode(
				projectMetric.Name,
				NodeKind.Assembly,
				evaluationResults.Where(x => x.ProjectName == projectMetric.Name).GetQuality(),
				projectMetric.LinesOfCode,
				projectMetric.MaintainabilityIndex,
				projectMetric.CyclomaticComplexity,
				children);
		}