Ejemplo n.º 1
0
 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")))))));
 }
Ejemplo n.º 2
0
        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"))));
        }