Exemple #1
0
        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));
        }
		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);
		}
		private static IModelNode CreateNamespaceNode(INamespaceMetric namespaceMetric, IProjectMetric[] projectMetrics, IEnumerable<EvaluationResult> reviews)
		{
			var references =
				namespaceMetric.ClassCouplings.Select(definition => CreateNamespaceReferenceNode(definition, projectMetrics)).AsArray();
			var children =
				namespaceMetric.TypeMetrics.Select(
					typeMetric => CreateTypeNodes(typeMetric, projectMetrics, reviews.Where(x => x.TypeName == typeMetric.Name)))
					.Concat(references)
					.Merge()
					.ToList();
			return new ModelNode(
				namespaceMetric.Name,
				NodeKind.Namespace,
				reviews.Where(x => x.Namespace == namespaceMetric.Name).GetQuality(),
				namespaceMetric.LinesOfCode,
				namespaceMetric.MaintainabilityIndex,
				namespaceMetric.CyclomaticComplexity,
				children);
		}