public MetricResult Calculate(IEnumerable <AssemblyDefinition> assemblies, IMetric metric)
        {
            List <AssemblyResult> assemblyResults = new List <AssemblyResult>();

            foreach (AssemblyDefinition assembly in assemblies)
            {
                List <ModuleResult> moduleResults = new List <ModuleResult>();
                foreach (ModuleDefinition module in assembly.Modules)
                {
                    List <TypeResult> typeResults = new List <TypeResult>();
                    foreach (TypeDefinition type in module.Types)
                    {
                        List <MethodResult> methodResults = new List <MethodResult>();
                        foreach (MethodDefinition method in type.Methods)
                        {
                            MethodResult methodResult = metric.ProcessMethod(method);
                            methodResults.Add(methodResult);
                        }
                        TypeResult typeResult = metric.ProcessType(type, methodResults.ToArray());
                        typeResults.Add(typeResult);
                    }
                    ModuleResult moduleResult = metric.ProcessModule(module, typeResults.ToArray());
                    moduleResults.Add(moduleResult);
                }
                AssemblyResult assemblyResult = metric.ProcessAssembly(assembly, moduleResults.ToArray());
                assemblyResults.Add(assemblyResult);
            }
            MetricResult result = metric.Process(assemblyResults.ToArray());

            return(result);
        }
 public AssemblyResult ProcessAssembly(AssemblyDefinition assembly, ModuleResult[] moduleResults)
 {
     AssemblyResult result = new AssemblyResult(assembly.Name.Name);
     result.ModuleResults = moduleResults;
     result.Result = moduleResults.Sum(r => r.Result);
     return result;
 }
 public MetricResult Process(AssemblyResult[] assemblyResults)
 {
     MetricResult result = new MetricResult("Cyclomatic complexity");
     result.AssemblyResults = assemblyResults;
     result.Result = assemblyResults.Sum(r => r.Result);
     return result;
 }
 public MetricResult Process(AssemblyResult[] assemblyResults)
 {
     MetricResult result = new MetricResult("Lines of code");
     result.AssemblyResults = assemblyResults;
     result.Result = assemblyResults.Sum(r => r.Result);
     return result;
 }
Example #5
0
        public AssemblyResult ProcessAssembly(AssemblyDefinition assembly, ModuleResult[] moduleResults)
        {
            AssemblyResult result = new AssemblyResult(assembly.Name.Name);

            result.ModuleResults = moduleResults;
            result.Result        = moduleResults.Sum(r => r.Result);
            return(result);
        }