From 96fad5eb2c5b13f6db784bb7edacebbba60183a4 Mon Sep 17 00:00:00 2001 From: devhl-labs Date: Mon, 18 Mar 2024 00:54:49 -0400 Subject: [PATCH] [csharp] Fix getModelFromParameter (#18137) * fix getModelFromParameter * minor fix --- .../languages/AbstractCSharpCodegen.java | 2 +- .../resources/3_0/aspnetcore/petstore.yaml | 17 +++++++ .../echo_api/csharp-restsharp/docs/PathApi.md | 4 +- .../src/Org.OpenAPITools/Api/PathApi.cs | 12 ----- .../csharp-complex-files/docs/MultipartApi.md | 4 +- .../src/Org.OpenAPITools/Api/MultipartApi.cs | 16 +----- .../aspnetcore-3.0/.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../aspnetcore-3.1/.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../aspnetcore-5.0/.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 42 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../.openapi-generator/FILES | 2 + .../src/Org.OpenAPITools.Models/TestEnum.cs | 43 ++++++++++++++++ .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ .../.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 38 ++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../aspnetcore-6.0/.openapi-generator/FILES | 2 + .../Controllers/DefaultApi.cs | 49 +++++++++++++++++++ .../src/Org.OpenAPITools/Models/TestEnum.cs | 43 ++++++++++++++++ .../wwwroot/openapi-original.json | 24 +++++++++ 41 files changed, 1050 insertions(+), 31 deletions(-) create mode 100644 samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools.Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Models/TestEnum.cs create mode 100644 samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs create mode 100644 samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Models/TestEnum.cs diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index 56b678058af..84a89902fc5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -1122,7 +1122,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co * Returns the model related to the given parameter */ private CodegenModel getModelFromParameter(List allModels, CodegenParameter parameter) { - return parameter.isModel + return parameter.isModel || parameter.getIsEnumOrRef() ? allModels.stream().map(m -> m.getModel()).filter(m -> m.getClassname().equals(parameter.dataType)).findFirst().orElse(null) : null; } diff --git a/modules/openapi-generator/src/test/resources/3_0/aspnetcore/petstore.yaml b/modules/openapi-generator/src/test/resources/3_0/aspnetcore/petstore.yaml index 1ba98052485..20e8b70c421 100644 --- a/modules/openapi-generator/src/test/resources/3_0/aspnetcore/petstore.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/aspnetcore/petstore.yaml @@ -18,6 +18,18 @@ tags: - name: user description: Operations about user paths: + /test: + get: + summary: Test API + parameters: + - in: query + name: testQuery + schema: + $ref: '#/components/schemas/TestEnum' + required: false + responses: + '200': + description: OK /pet: post: tags: @@ -620,6 +632,11 @@ components: name: api_key in: header schemas: + TestEnum: + type: string + enum: + - A + - B Order: title: Pet Order description: An order for a pets from the pet store diff --git a/samples/client/echo_api/csharp-restsharp/docs/PathApi.md b/samples/client/echo_api/csharp-restsharp/docs/PathApi.md index 7d9d398701b..e83b85c62a5 100644 --- a/samples/client/echo_api/csharp-restsharp/docs/PathApi.md +++ b/samples/client/echo_api/csharp-restsharp/docs/PathApi.md @@ -34,7 +34,7 @@ namespace Example var pathString = "pathString_example"; // string | var pathInteger = 56; // int | var enumNonrefStringPath = "success"; // string | - var enumRefStringPath = new StringEnumRef(); // StringEnumRef | + var enumRefStringPath = (StringEnumRef) "success"; // StringEnumRef | try { @@ -80,7 +80,7 @@ catch (ApiException e) | **pathString** | **string** | | | | **pathInteger** | **int** | | | | **enumNonrefStringPath** | **string** | | | -| **enumRefStringPath** | [**StringEnumRef**](StringEnumRef.md) | | | +| **enumRefStringPath** | **StringEnumRef** | | | ### Return type diff --git a/samples/client/echo_api/csharp-restsharp/src/Org.OpenAPITools/Api/PathApi.cs b/samples/client/echo_api/csharp-restsharp/src/Org.OpenAPITools/Api/PathApi.cs index 60a17abf8cc..9fc7b35620e 100644 --- a/samples/client/echo_api/csharp-restsharp/src/Org.OpenAPITools/Api/PathApi.cs +++ b/samples/client/echo_api/csharp-restsharp/src/Org.OpenAPITools/Api/PathApi.cs @@ -256,12 +256,6 @@ namespace Org.OpenAPITools.Api throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'enumNonrefStringPath' when calling PathApi->TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPath"); } - // verify the required parameter 'enumRefStringPath' is set - if (enumRefStringPath == null) - { - throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'enumRefStringPath' when calling PathApi->TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPath"); - } - Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions(); string[] _contentTypes = new string[] { @@ -349,12 +343,6 @@ namespace Org.OpenAPITools.Api throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'enumNonrefStringPath' when calling PathApi->TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPath"); } - // verify the required parameter 'enumRefStringPath' is set - if (enumRefStringPath == null) - { - throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'enumRefStringPath' when calling PathApi->TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPath"); - } - Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions(); diff --git a/samples/client/others/csharp-complex-files/docs/MultipartApi.md b/samples/client/others/csharp-complex-files/docs/MultipartApi.md index 82423a6011a..23628f52603 100644 --- a/samples/client/others/csharp-complex-files/docs/MultipartApi.md +++ b/samples/client/others/csharp-complex-files/docs/MultipartApi.md @@ -118,7 +118,7 @@ namespace Example Configuration config = new Configuration(); config.BasePath = "http://localhost"; var apiInstance = new MultipartApi(config); - var status = new MultipartMixedStatus(); // MultipartMixedStatus | + var status = (MultipartMixedStatus) "ALLOWED"; // MultipartMixedStatus | var file = new System.IO.MemoryStream(System.IO.File.ReadAllBytes("/path/to/file.txt")); // System.IO.Stream | a file var marker = new MultipartMixedRequestMarker(); // MultipartMixedRequestMarker | (optional) var statusArray = new List(); // List | (optional) @@ -158,7 +158,7 @@ catch (ApiException e) | Name | Type | Description | Notes | |------|------|-------------|-------| -| **status** | [**MultipartMixedStatus**](MultipartMixedStatus.md) | | | +| **status** | **MultipartMixedStatus** | | | | **file** | **System.IO.Stream****System.IO.Stream** | a file | | | **marker** | [**MultipartMixedRequestMarker**](MultipartMixedRequestMarker.md) | | [optional] | | **statusArray** | [**List<MultipartMixedStatus>**](MultipartMixedStatus.md) | | [optional] | diff --git a/samples/client/others/csharp-complex-files/src/Org.OpenAPITools/Api/MultipartApi.cs b/samples/client/others/csharp-complex-files/src/Org.OpenAPITools/Api/MultipartApi.cs index b8058401397..cdb39df5207 100644 --- a/samples/client/others/csharp-complex-files/src/Org.OpenAPITools/Api/MultipartApi.cs +++ b/samples/client/others/csharp-complex-files/src/Org.OpenAPITools/Api/MultipartApi.cs @@ -480,12 +480,6 @@ namespace Org.OpenAPITools.Api /// ApiResponse of Object(void) public Org.OpenAPITools.Client.ApiResponse MultipartMixedWithHttpInfo(MultipartMixedStatus status, System.IO.Stream file, MultipartMixedRequestMarker marker = default(MultipartMixedRequestMarker), List statusArray = default(List), int operationIndex = 0) { - // verify the required parameter 'status' is set - if (status == null) - { - throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling MultipartApi->MultipartMixed"); - } - // verify the required parameter 'file' is set if (file == null) { @@ -514,7 +508,7 @@ namespace Org.OpenAPITools.Api localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } - localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.Serialize(status)); // form parameter + localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.ParameterToString(status)); // form parameter if (marker != null) { localVarRequestOptions.FormParameters.Add("marker", Org.OpenAPITools.Client.ClientUtils.Serialize(marker)); // form parameter @@ -572,12 +566,6 @@ namespace Org.OpenAPITools.Api /// Task of ApiResponse public async System.Threading.Tasks.Task> MultipartMixedWithHttpInfoAsync(MultipartMixedStatus status, System.IO.Stream file, MultipartMixedRequestMarker marker = default(MultipartMixedRequestMarker), List statusArray = default(List), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - // verify the required parameter 'status' is set - if (status == null) - { - throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'status' when calling MultipartApi->MultipartMixed"); - } - // verify the required parameter 'file' is set if (file == null) { @@ -607,7 +595,7 @@ namespace Org.OpenAPITools.Api localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } - localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.Serialize(status)); // form parameter + localVarRequestOptions.FormParameters.Add("status", Org.OpenAPITools.Client.ClientUtils.ParameterToString(status)); // form parameter if (marker != null) { localVarRequestOptions.FormParameters.Add("marker", Org.OpenAPITools.Client.ClientUtils.Serialize(marker)); // form parameter diff --git a/samples/server/petstore/aspnetcore-3.0/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-3.0/.openapi-generator/FILES index 8a81b301272..ac21668e628 100644 --- a/samples/server/petstore/aspnetcore-3.0/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-3.0/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Program.cs diff --git a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-3.1/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-3.1/.openapi-generator/FILES index 8a81b301272..ac21668e628 100644 --- a/samples/server/petstore/aspnetcore-3.1/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-3.1/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Program.cs diff --git a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-5.0/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-5.0/.openapi-generator/FILES index 8a81b301272..ac21668e628 100644 --- a/samples/server/petstore/aspnetcore-5.0/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-5.0/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Program.cs diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/.openapi-generator/FILES index 0cae9f829ca..fe6225de0b2 100644 --- a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Org.OpenAPITools.csproj diff --git a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..3d7fbb77b0d --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using System.Text.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..8777bf97e8d --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,42 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using System.Text.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/.openapi-generator/FILES index 0cae9f829ca..fe6225de0b2 100644 --- a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Org.OpenAPITools.csproj diff --git a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0-pocoModels/.openapi-generator/FILES index 0cae9f829ca..fe6225de0b2 100644 --- a/samples/server/petstore/aspnetcore-6.0-pocoModels/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Org.OpenAPITools.csproj diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-6.0-project4Models/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0-project4Models/.openapi-generator/FILES index 2fa34238cdf..2836933eb2c 100644 --- a/samples/server/petstore/aspnetcore-6.0-project4Models/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0-project4Models/.openapi-generator/FILES @@ -13,10 +13,12 @@ src/Org.OpenAPITools.Models/Order.cs src/Org.OpenAPITools.Models/Org.OpenAPITools.Models.csproj src/Org.OpenAPITools.Models/Pet.cs src/Org.OpenAPITools.Models/Tag.cs +src/Org.OpenAPITools.Models/TestEnum.cs src/Org.OpenAPITools.Models/User.cs src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs diff --git a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools.Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools.Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools.Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : { diff --git a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/.openapi-generator/FILES index e63833fe8ef..7d45629430c 100644 --- a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -19,6 +20,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Org.OpenAPITools.csproj diff --git a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..7ef97038061 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public abstract class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + public abstract IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery); + } +} diff --git a/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0/.openapi-generator/FILES b/samples/server/petstore/aspnetcore-6.0/.openapi-generator/FILES index 0cae9f829ca..fe6225de0b2 100644 --- a/samples/server/petstore/aspnetcore-6.0/.openapi-generator/FILES +++ b/samples/server/petstore/aspnetcore-6.0/.openapi-generator/FILES @@ -5,6 +5,7 @@ build.sh src/Org.OpenAPITools/.gitignore src/Org.OpenAPITools/Attributes/ValidateModelStateAttribute.cs src/Org.OpenAPITools/Authentication/ApiAuthentication.cs +src/Org.OpenAPITools/Controllers/DefaultApi.cs src/Org.OpenAPITools/Controllers/FakeApi.cs src/Org.OpenAPITools/Controllers/PetApi.cs src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -22,6 +23,7 @@ src/Org.OpenAPITools/Models/Dog.cs src/Org.OpenAPITools/Models/Order.cs src/Org.OpenAPITools/Models/Pet.cs src/Org.OpenAPITools/Models/Tag.cs +src/Org.OpenAPITools/Models/TestEnum.cs src/Org.OpenAPITools/Models/User.cs src/Org.OpenAPITools/OpenApi/TypeExtensions.cs src/Org.OpenAPITools/Org.OpenAPITools.csproj diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs new file mode 100644 index 00000000000..beabdde2fb1 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Controllers/DefaultApi.cs @@ -0,0 +1,49 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Http; +using Swashbuckle.AspNetCore.Annotations; +using Swashbuckle.AspNetCore.SwaggerGen; +using Newtonsoft.Json; +using Org.OpenAPITools.Attributes; +using Org.OpenAPITools.Models; + +namespace Org.OpenAPITools.Controllers +{ + /// + /// + /// + [ApiController] + public class DefaultApiController : ControllerBase + { + /// + /// Test API + /// + /// + /// OK + [HttpGet] + [Route("/v2/test")] + [ValidateModelState] + [SwaggerOperation("TestGet")] + public virtual IActionResult TestGet([FromQuery (Name = "testQuery")]TestEnum? testQuery) + { + + //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... + // return StatusCode(200); + + throw new NotImplementedException(); + } + } +} diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Models/TestEnum.cs b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Models/TestEnum.cs new file mode 100644 index 00000000000..10227a2a2c4 --- /dev/null +++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Models/TestEnum.cs @@ -0,0 +1,43 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +using System; +using System.Linq; +using System.Text; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Runtime.Serialization; +using Newtonsoft.Json; +using Org.OpenAPITools.Converters; + +namespace Org.OpenAPITools.Models +{ + /// + /// Gets or Sets TestEnum + /// + [TypeConverter(typeof(CustomEnumConverter))] + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum TestEnum + { + + /// + /// Enum AEnum for A + /// + [EnumMember(Value = "A")] + AEnum = 1, + + /// + /// Enum BEnum for B + /// + [EnumMember(Value = "B")] + BEnum = 2 + } +} diff --git a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/wwwroot/openapi-original.json b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/wwwroot/openapi-original.json index 75adab0d8b4..a117e88378f 100644 --- a/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/wwwroot/openapi-original.json +++ b/samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/wwwroot/openapi-original.json @@ -27,6 +27,26 @@ "name" : "user" } ], "paths" : { + "/test" : { + "get" : { + "parameters" : [ { + "explode" : true, + "in" : "query", + "name" : "testQuery", + "required" : false, + "schema" : { + "$ref" : "#/components/schemas/TestEnum" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "description" : "OK" + } + }, + "summary" : "Test API" + } + }, "/pet" : { "post" : { "description" : "", @@ -828,6 +848,10 @@ } }, "schemas" : { + "TestEnum" : { + "enum" : [ "A", "B" ], + "type" : "string" + }, "Order" : { "description" : "An order for a pets from the pet store", "example" : {