protected virtual IEnumerable <StatementSyntax> GenerateStatements( ILocatedOpenApiElement <OpenApiResponse> response, TypeSyntax returnType) { yield return(ReturnStatement(SyntaxHelpers.AwaitConfiguredFalse( InvocationExpression(MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SerializationNamespace.TypeSerializerRegistryExtensions, GenericName("DeserializeAsync") .AddTypeArgumentListArguments(returnType))) .AddArgumentListArguments( Argument(IdentifierName("TypeSerializerRegistry")), Argument(MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, IdentifierName("Message"), IdentifierName("Content"))))))); }
protected virtual IEnumerable <StatementSyntax> GenerateStatements( ILocatedOpenApiElement <OpenApiResponse> response, TypeSyntax returnType) { // Return from _body field if not null, otherwise deserialize and set the _body field yield return(ReturnStatement(AssignmentExpression(SyntaxKind.CoalesceAssignmentExpression, IdentifierName(ResponseTypeGenerator.BodyFieldName), SyntaxHelpers.AwaitConfiguredFalse( InvocationExpression(MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, SerializationNamespace.TypeSerializerRegistryExtensions, GenericName("DeserializeAsync") .AddTypeArgumentListArguments(returnType))) .AddArgumentListArguments( Argument(IdentifierName("TypeSerializerRegistry")), Argument(MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, IdentifierName("Message"), IdentifierName("Content")))))))); }
protected virtual IEnumerable <StatementSyntax> GenerateStatements(ILocatedOpenApiElement <OpenApiOperation> operation) { yield return(MethodHelpers.ThrowIfArgumentNull(RequestParameterName)); yield return(GenerateAuthenticatorVariable()); yield return(GenerateRequestMessageVariable(operation)); yield return(MethodHelpers.IfNotNull( IdentifierName(AuthenticatorVariableName), Block(ExpressionStatement(SyntaxHelpers.AwaitConfiguredFalse(InvocationExpression( MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, IdentifierName(AuthenticatorVariableName), IdentifierName("ApplyAsync"))) .AddArgumentListArguments( Argument(IdentifierName(RequestMessageVariableName)), Argument(IdentifierName(MethodHelpers.CancellationTokenParameterName)))))))); yield return(LocalDeclarationStatement(VariableDeclaration(IdentifierName("var")) .AddVariables(VariableDeclarator("responseMessage") .WithInitializer(EqualsValueClause( SyntaxHelpers.AwaitConfiguredFalse(InvocationExpression( SyntaxHelpers.MemberAccess(TagTypeGenerator.HttpClientFieldName, "SendAsync")) .AddArgumentListArguments( Argument(IdentifierName(RequestMessageVariableName)), Argument(IdentifierName(MethodHelpers.CancellationTokenParameterName))))))))); yield return(MethodHelpers.IfNotNull( IdentifierName(AuthenticatorVariableName), Block(ExpressionStatement(SyntaxHelpers.AwaitConfiguredFalse(InvocationExpression( MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, IdentifierName(AuthenticatorVariableName), IdentifierName("ProcessResponseAsync"))) .AddArgumentListArguments( Argument(IdentifierName("responseMessage")), Argument(IdentifierName(MethodHelpers.CancellationTokenParameterName)))))))); yield return(ReturnStatement(GenerateResponse(operation, IdentifierName("responseMessage")))); }