in src/WebJobs.Extensions.DurableTask.Analyzers/CodefixProviders/Orchestrator/TimerCodeFixProvider.cs [146:170]
private bool TryGetParameterOfType(SyntaxNode argument, SemanticModel semanticModel, string typeToCompare, out string parameter)
{
if (TryGetIdentifierNameChildNodes(argument, out IEnumerable<SyntaxNode> node) ||
TryGetSimpleMemberAccessExpressionChildNodes(argument, out node) ||
TryGetObjectCreationExpressionChildNodes(argument, out node))
{
if (TryGetIdentifierNameChildNodes(node.FirstOrDefault(), out IEnumerable<SyntaxNode> identifiers))
{
var typeWithoutNamespace = GetTypeWithoutNamespace(typeToCompare);
foreach (SyntaxNode identifier in identifiers)
{
if (string.Equals(identifier.ToString(), typeWithoutNamespace) ||
SyntaxNodeUtils.TryGetITypeSymbol(semanticModel, identifier, out ITypeSymbol type) &&
string.Equals(type.ToString(), typeToCompare))
{
parameter = node.First().ToString();
return true;
}
}
}
}
parameter = null;
return false;
}