ArchiMetrics.Analysis.CodeMetricsCalculator.CalculateTypeMetrics C# (CSharp) Метод

CalculateTypeMetrics() приватный Метод

private CalculateTypeMetrics ( Compilation compilation, ArchiMetrics.Analysis.Metrics.NamespaceDeclaration namespaceNodes, Solution solution ) : IEnumerable>>.Task
compilation Compilation
namespaceNodes ArchiMetrics.Analysis.Metrics.NamespaceDeclaration
solution Solution
Результат IEnumerable>>.Task
		private async Task<Tuple<Compilation, IEnumerable<ITypeMetric>>> CalculateTypeMetrics(Compilation compilation, NamespaceDeclaration namespaceNodes, Solution solution)
		{
			var comp = compilation;
			var tasks = GetTypeDeclarations(namespaceNodes)
				.Select(async typeNodes =>
					{
						var tuple = await CalculateMemberMetrics(comp, typeNodes, solution).ConfigureAwait(false);
						var metrics = tuple.Item2;
						comp = tuple.Item1;
						return new
						{
							comp,
							typeNodes,
							solution,
							memberMetrics = metrics
						};
					})
					.AsArray();
			var data = await Task.WhenAll(tasks).ConfigureAwait(false);
			var typeMetricsTasks = data
				.Select(async item =>
				{
					var tuple = await CalculateTypeMetrics(item.solution, item.comp, item.typeNodes, item.memberMetrics).ConfigureAwait(false);
					if (tuple == null)
					{
						return null;
					}

					comp = tuple.Item1;
					return tuple.Item2;
				})
				.AsArray();

			var typeMetrics = await Task.WhenAll(typeMetricsTasks).ConfigureAwait(false);
			var array = typeMetrics.Where(x => x != null).AsArray();
			return new Tuple<Compilation, IEnumerable<ITypeMetric>>(comp, array);
		}
	}

Same methods

CodeMetricsCalculator::CalculateTypeMetrics ( Solution solution, Compilation compilation, TypeDeclaration typeNodes, IEnumerable memberMetrics ) : ITypeMetric>>.Task