ArchiMetrics.Analysis.CodeMetricsCalculator.Calculate C# (CSharp) Method

Calculate() public method

public Calculate ( Microsoft.CodeAnalysis.Project project, Solution solution ) : Task>
project Microsoft.CodeAnalysis.Project
solution Solution
return Task>
		public virtual async Task<IEnumerable<INamespaceMetric>> Calculate(Project project, Solution solution)
		{
			var compilation = await project.GetCompilationAsync().ConfigureAwait(false);
			var namespaceDeclarations = await GetNamespaceDeclarations(project).ConfigureAwait(false);
			return await CalculateNamespaceMetrics(namespaceDeclarations, compilation, solution).ConfigureAwait(false);
		}

Same methods

CodeMetricsCalculator::Calculate ( IEnumerable syntaxTrees ) : Task>

Usage Example

 async void Analyzeblock(CodeBlockAnalysisContext obj)
 {
     var metricsCalculator = new CodeMetricsCalculator();
     var metrics = await metricsCalculator.Calculate(new List<SyntaxTree> { CSharpSyntaxTree.ParseText(obj.CodeBlock.ToString()) });
     var functionMetric = metrics.ElementAt(0).TypeMetrics.ElementAt(0).MemberMetrics.ElementAt(0);
     //var settings = SettingsHelper.GetSettings(obj.Options);
     var settings = new Settings();
     CheckComplexity(obj, functionMetric.CyclomaticComplexity, settings.MethodSettings);
     CheckNumberOfParameters(obj, functionMetric.NumberOfParameters, settings.MethodSettings);
     CheckLinesOfCode(obj, functionMetric.LinesOfCode, settings.MethodSettings);
 }
All Usage Examples Of ArchiMetrics.Analysis.CodeMetricsCalculator::Calculate