Exemplo n.º 1
0
        private void CheckNameSpaceRules(INamespaceMetric itmClass, CodeMetricSetting setting, string nameClss)
        {
            //Cheking namespaces CyclomaticComplexity is seems ridiculous
            //if (IsMaxExceed(itmClass.CyclomaticComplexity, setting.MaxCyclomaticComplexity))
            //    WrtLog("Cyclomatic Complexity", nameClss, itmClass.CyclomaticComplexity, setting.MaxCyclomaticComplexity);

            //if (IsMaxExceed(itmClass.DepthOfInheritance, setting.MaxDepthofInheritenceforClass))
            //    WrtLog("Depth of Inheritance", nameClss, itmClass.DepthOfInheritance, setting.MaxDepthofInheritenceforClass);

            int mainIndx = (int)itmClass.MaintainabilityIndex;

            if (IsMinExceed(itmClass.MaintainabilityIndex, setting.MinMaintainabilityIndexforClass))
            {
                WrtLog(MetricSource.Namespace, "Maintainability Index", nameClss, mainIndx, setting.MinMaintainabilityIndexforClass);
            }
        }
        public List <FileMetricOverTime> GetFileMetricOverTime(IEnumerable <GitCommit> gitCommits, IEnumerable <string> filePaths)
        {
            List <FileMetricOverTime> fileMetricsOverTime = new List <FileMetricOverTime>();

            foreach (string filePath in filePaths)
            {
                FileMetricOverTime fileMetricOverTime = new FileMetricOverTime(filePath);

                foreach (GitCommit gitCommit in gitCommits)
                {
                    if (gitCommit.ContainsFileNames(new List <string>()
                    {
                        filePath
                    }))
                    {
                        SyntaxTree syntaxTree = GetSyntaxTree(GetFileContentForFilePath(filePath, gitCommit));

                        if (syntaxTree.Length == 0)
                        {
                            continue;
                        }

                        IEnumerable <INamespaceMetric> metrics = GetFileMetric(syntaxTree);
                        if (metrics.Count() != 1)
                        {
                            continue;
                        }

                        INamespaceMetric metric = metrics.SingleOrDefault();
                        fileMetricOverTime.FileMetricForCommits.Add(
                            new FileMetricForCommit(gitCommit.SHA,
                                                    gitCommit.Time,
                                                    metric.MaintainabilityIndex,
                                                    metric.CyclomaticComplexity,
                                                    metric.LinesOfCode));
                    }
                }
                fileMetricsOverTime.Add(fileMetricOverTime);
            }

            return(fileMetricsOverTime);
        }
Exemplo n.º 3
0
        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));
        }
		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);
		}