예제 #1
0
 protected virtual StatementSyntax GenerateRequestMessageVariable(
     ILocatedOpenApiElement <OpenApiOperation> operation) =>
 MethodHelpers.LocalVariableDeclarationWithInitializer(RequestMessageVariableName,
                                                       ObjectCreationExpression(WellKnownTypes.System.Net.Http.HttpRequestMessage.Name)
                                                       .AddArgumentListArguments(
                                                           Argument(GetRequestMethod(operation)),
                                                           Argument(BuildUriMethodGenerator.InvokeBuildUri(ThisExpression()))));
예제 #2
0
        public override IEnumerable <MemberDeclarationSyntax> Generate()
        {
            var classNameAndNamespace = (QualifiedNameSyntax)GetTypeName();

            string className = classNameAndNamespace.Right.Identifier.Text;

            ClassDeclarationSyntax declaration = ClassDeclaration(className)
                                                 .AddElementAnnotation(Element, Context.ElementRegistry)
                                                 .AddModifiers(Token(SyntaxKind.PublicKeyword))
                                                 .AddBaseListTypes(SimpleBaseType(RequestsNamespace.OperationRequest))
                                                 .AddMembers(ConstructorDeclaration(className)
                                                             .AddModifiers(Token(SyntaxKind.PublicKeyword))
                                                             .WithBody(Block()));

            declaration = AddParameterProperties(declaration, Element.GetParameters());

            var requestBodyElement = Element.GetRequestBody();

            if (requestBodyElement != null)
            {
                var schema = MediaTypeSelector.Select(requestBodyElement)?.GetSchema();
                if (schema != null)
                {
                    declaration = declaration.AddMembers(
                        CreatePropertyDeclaration(requestBodyElement, className, schema, "Body"));
                }
            }

            declaration = declaration.AddMembers(
                BuildRequestMethodGenerator.Generate(Element),
                BuildUriMethodGenerator.Generate(Element),
                AddHeadersMethodGenerator.Generate(Element),
                BuildContentMethodGenerator.Generate(Element));

            yield return(declaration);
        }