public void FindActivity(SyntaxNodeAnalysisContext context) { var attribute = context.Node as AttributeSyntax; if (SyntaxNodeUtils.IsActivityTriggerAttribute(attribute)) { if (!TryGetFunctionName(attribute, out string functionName)) { //Do not store ActivityFunctionDefinition if there is no function name return; } if (!TryGetReturnType(context, attribute, out ITypeSymbol returnType)) { //Do not store ActivityFunctionDefinition if there is no return type return; } var returnTypeName = GetQualifiedTypeName(returnType); var inputType = GetActivityFunctionInputTypeName(context, attribute); var inputTypeName = GetQualifiedTypeName(inputType); availableFunctions.Add(new ActivityFunctionDefinition { FunctionName = functionName, InputType = inputTypeName, ReturnType = returnTypeName }); } }
public void FindActivityFunction(SyntaxNodeAnalysisContext context) { var attribute = context.Node as AttributeSyntax; if (SyntaxNodeUtils.IsActivityTriggerAttribute(attribute)) { if (!SyntaxNodeUtils.TryGetFunctionName(context.SemanticModel, attribute, out string functionName)) { //Do not store ActivityFunctionDefinition if there is no function name return; } if (!SyntaxNodeUtils.TryGetMethodReturnTypeNode(attribute, out SyntaxNode returnTypeNode)) { //Do not store ActivityFunctionDefinition if there is no return type return; } SyntaxNodeUtils.TryGetParameterNodeNextToAttribute(context, attribute, out SyntaxNode parameterNode); availableFunctions.Add(new ActivityFunctionDefinition { FunctionName = functionName, ParameterNode = parameterNode, ReturnTypeNode = returnTypeNode }); } }
public void FindActivityFunctionDefinition(SyntaxNodeAnalysisContext context) { var semanticModel = context.SemanticModel; if (context.Node is AttributeSyntax attribute && SyntaxNodeUtils.IsActivityTriggerAttribute(attribute)) { if (!SyntaxNodeUtils.TryGetFunctionName(semanticModel, attribute, out string functionName)) { //Do not store ActivityFunctionDefinition if there is no function name return; } if (!SyntaxNodeUtils.TryGetMethodReturnTypeNode(attribute, out SyntaxNode returnTypeNode)) { //Do not store ActivityFunctionDefinition if there is no return type return; } SyntaxNodeUtils.TryGetITypeSymbol(semanticModel, returnTypeNode, out ITypeSymbol returnType); SyntaxNodeUtils.TryGetParameterNodeNextToAttribute(attribute, out SyntaxNode parameterNode); TryGetDefinitionInputType(semanticModel, parameterNode, out ITypeSymbol inputType); availableFunctions.Add(new ActivityFunctionDefinition { FunctionName = functionName, ParameterNode = parameterNode, InputType = inputType, ReturnTypeNode = returnTypeNode, ReturnType = returnType }); } }