private static Modules GetModulesResult(ModuleMetric metric) { Modules module = new Modules(); module.Add(MetricsReportBuilder.GetModuleResult(metric)); return(module); }
private static IEnumerable <ModuleMetric> CalculateModuleMetrics(IEnumerable <Project> projects, bool ignoreGeneratedCode = false) { BlockingCollection <ModuleMetric> moduleMetrics = new BlockingCollection <ModuleMetric>(); foreach (Project nextProject in projects) { ModuleMetric moduleMetric = (new ModuleMetricsCalculator() { IgnoreGeneratedCode = ignoreGeneratedCode }).Calculate(nextProject); if (moduleMetric != null) { moduleMetrics.Add(moduleMetric); } } /* * Parallel.ForEach<Project>(projects, (Project nextProject) => { * ModuleMetric moduleMetric = (new ModuleMetricsCalculator() * { * IgnoreGeneratedCode = ignoreGeneratedCode * }).Calculate(nextProject); * if (moduleMetric != null) * { * moduleMetrics.Add(moduleMetric); * } * }); */ return(moduleMetrics.ToList <ModuleMetric>().AsReadOnly()); }
private static VsCodeMetrics.Entities.Module GetModuleResult(ModuleMetric metric) { VsCodeMetrics.Entities.Module module = new VsCodeMetrics.Entities.Module(); module.Name = metric.ModuleName; module.AssemblyVersion = metric.AssemblyVersion; module.FileVersion = metric.FileVersion; VsCodeMetrics.Entities.Module module1 = module; if (metric.Metrics != null) { module1.Add(MetricsReportBuilder.GetMetricsResult(metric.Metrics)); } module1.Add(MetricsReportBuilder.GetNamespaces(metric.NamespaceMetrics)); return(module1); }
public ModuleMetric Calculate(Project project) { Compilation compilation = ProjectExtensions.GetCompilation(project); IModuleSymbol moduleSymbol = compilation.Assembly.Modules.FirstOrDefault <IModuleSymbol>(); NamespaceMetrics namespaceMetric = ModuleMetricsCalculator.CalculateNamespaceMetrics(project, this.IgnoreGeneratedCode); NamespaceMetrics namespaceMetric1 = namespaceMetric; if (namespaceMetric == null) { return(null); } IEnumerable <string> strs = ModuleMetricsCalculator.CalculateClassCoupling(namespaceMetric1); double num = ModuleMetricsCalculator.CalculateMaintainabilityIndex(namespaceMetric1); int num1 = ModuleMetricsCalculator.CalculateCyclomaticComplexity(namespaceMetric1); int num2 = this.CalculateDepthOfInheritance(namespaceMetric1); int num3 = ModuleMetricsCalculator.CalculateLinesOfCode(namespaceMetric1); int num4 = namespaceMetric1.Results.Count <NamespaceMetric>(); int num5 = ModuleMetricsCalculator.CalculateNumberOfTypes(namespaceMetric1); int num6 = ModuleMetricsCalculator.CalculateNumberOfMethods(namespaceMetric1); ModuleMetric moduleMetric = new ModuleMetric(); moduleMetric.ModuleName = moduleSymbol.Name; moduleMetric.ProjectFile = project.FilePath ?? string.Empty; moduleMetric.AssemblyVersion = string.Empty; moduleMetric.FileVersion = string.Empty; moduleMetric.NamespaceMetrics = namespaceMetric1; List <MetricResult> metricResults = new List <MetricResult>(); moduleMetric.AddMetricResult(new MetricResult() { Name = "MaintainabilityIndex", Value = num }); moduleMetric.AddMetricResult(new MetricResult { Name = "CyclomaticComplexity", Value = num1 }); moduleMetric.AddMetricResult(new ClassCouplingMetricResult { Name = "ClassCoupling", Value = strs.Count <string>(), Types = strs }); moduleMetric.AddMetricResult(new MetricResult { Name = "DepthOfInheritance", Value = num2 }); moduleMetric.AddMetricResult(new MetricResult { Name = "LinesOfCode", Value = num3 }); moduleMetric.AddMetricResult(new MetricResult { Name = "NumberOfNamespaces", Value = num4 }); moduleMetric.AddMetricResult(new MetricResult { Name = "NumberOfTypes", Value = num5 }); moduleMetric.AddMetricResult(new MetricResult { Name = "NumberOfMethods", Value = num6 }); return(moduleMetric); }