ArchiMetrics.CodeReview.Rules.Semantic.SemanticEvaluationBase.Evaluate C# (CSharp) Method

Evaluate() public method

public Evaluate ( 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
		public async Task<EvaluationResult> Evaluate(SyntaxNode node, SemanticModel semanticModel, Solution solution)
		{
			if (semanticModel == null || solution == null)
			{
				return null;
			}

			var result = await EvaluateImpl(node, semanticModel, solution).ConfigureAwait(false);
			if (result == null)
			{
				return null;
			}

			var sourceTree = node.GetLocation().SourceTree;
			var filePath = sourceTree.FilePath;
			var typeDefinition = GetNodeType(node);
			var unitNamespace = GetNamespace(node);
			if (result.ErrorCount == 0)
			{
				result.ErrorCount = 1;
			}

			if (result.LinesOfCodeAffected <= 0)
			{
				result.LinesOfCodeAffected = GetLinesOfCode(node);
			}

			result.Namespace = unitNamespace;
			result.TypeKind = typeDefinition.Item1;
			result.TypeName = typeDefinition.Item2;
			result.Title = Title;
			result.Suggestion = Suggestion;
			result.Quality = Quality;
			result.QualityAttribute = QualityAttribute;
			result.ImpactLevel = ImpactLevel;
			result.FilePath = filePath;

			return result;
		}
SemanticEvaluationBase