ArchiMetrics.CodeReview.Rules.Semantic.TooLowMaintainabilityIndexRule.EvaluateImpl C# (CSharp) Method

EvaluateImpl() protected method

protected EvaluateImpl ( Microsoft.CodeAnalysis.SyntaxNode node, Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.Solution solution ) : Task
node Microsoft.CodeAnalysis.SyntaxNode
semanticModel Microsoft.CodeAnalysis.SemanticModel
solution Microsoft.CodeAnalysis.Solution
return Task
		protected override Task<EvaluationResult> EvaluateImpl(SyntaxNode node, SemanticModel semanticModel, Solution solution)
		{
			var counter = new MemberMetricsCalculator(semanticModel, solution, null);

			var methodDeclaration = (MethodDeclarationSyntax)node;
			var metric = counter.CalculateSlim(methodDeclaration);
			return metric.MaintainabilityIndex <= Threshold
					   ? Task.FromResult(
						   new EvaluationResult
							   {
								   Snippet = node.ToFullString()
							   })
					   : Task.FromResult((EvaluationResult)null);
		}
	}