ArchiMetrics.Analysis.Metrics.MemberMetricsCalculator.CalculateAfferentCoupling C# (CSharp) Method

CalculateAfferentCoupling() private method

private CalculateAfferentCoupling ( Microsoft.CodeAnalysis.SyntaxNode node ) : Task
node Microsoft.CodeAnalysis.SyntaxNode
return Task
		private async Task<int> CalculateAfferentCoupling(SyntaxNode node)
		{
			try
			{
				if (_solution == null)
				{
					return 0;
				}

				if (node.SyntaxTree != Model.SyntaxTree)
				{
					return 0;
				}

				var symbol = Model.GetDeclaredSymbol(node);
				var referenceTasks = symbol == null
				? Task.FromResult(0)
				: _solution.FindReferences(symbol)
					.ContinueWith(t => t.Exception != null ? 0 : t.Result.Locations.Count());

				return await referenceTasks.ConfigureAwait(false);
			}
			catch
			{
				// Some constructors are not present in syntax tree because they have been created for metrics calculation.
				return 0;
			}
		}