private static MethodDeclarationSyntax CreateMembersForEndpointsPrivateHelper( KeyValuePair <OperationType, OpenApiOperation> apiOperation, bool hasRouteParameters) { var operationName = apiOperation.Value.GetOperationName(); var interfaceName = "I" + operationName + NameConstants.ContractHandler; var methodName = $"Invoke{operationName}Async"; var parameterTypeName = operationName + NameConstants.ContractParameters; var hasParametersOrRequestBody = apiOperation.Value.HasParametersOrRequestBody() || hasRouteParameters; // Create method # use CreateParameterList & CreateCodeBlockReturnStatement var methodDeclaration = SyntaxFactory.MethodDeclaration( SyntaxFactory.GenericName(SyntaxFactory.Identifier(nameof(Task))) .WithTypeArgumentList(SyntaxTypeArgumentListFactory.CreateWithOneItem(nameof(ActionResult))), SyntaxFactory.Identifier(methodName)) .AddModifiers(SyntaxTokenFactory.PrivateKeyword()) .AddModifiers(SyntaxTokenFactory.StaticKeyword()) .AddModifiers(SyntaxTokenFactory.AsyncKeyword()) .WithParameterList(CreateParameterList(hasParametersOrRequestBody, parameterTypeName, interfaceName, false)) .WithBody( SyntaxFactory.Block( CreateCodeBlockReturnStatementForHelper(hasParametersOrRequestBody))); return(methodDeclaration); }