[aspnetcore] Fix string enum generation (#7581)

* [aspnetcore] Fix enum strings generation regression

* [aspnetcore] Regenerate sample
This commit is contained in:
Jim Schubert 2018-02-08 01:43:47 -05:00 committed by William Cheng
parent b184fb1d9c
commit 8668175879
8 changed files with 63 additions and 52 deletions

View File

@ -1,13 +1,18 @@
/// <summary> /// <summary>
/// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}}
/// </summary>{{#description}} /// </summary>
/// <value>{{{description}}}</value>{{/description}} {{#description}}
/// <value>{{{description}}}</value>
{{/description}}
{{#allowableValues}}{{#enumVars}}{{#-first}}{{#isString}}[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]{{/isString}}{{/-first}}{{/enumVars}}{{/allowableValues}}
public enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} public enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}
{ {{#allowableValues}}{{#enumVars}} {
{{#allowableValues}}{{#enumVars}}
/// <summary> /// <summary>
/// Enum {{name}} for {{{value}}} /// Enum {{name}} for {{{value}}}
/// </summary> /// </summary>
[EnumMember(Value = {{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isFloat}}"{{/isFloat}}{{#isDouble}}"{{/isDouble}}{{{value}}}{{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isFloat}}"{{/isFloat}})] {{#isString}}[EnumMember(Value = "{{{value}}}")]{{/isString}}
{{name}}{{#isLong}} = {{{value}}}{{/isLong}}{{#isInteger}} = {{{value}}}{{/isInteger}}{{^isInteger}} = {{-index}}{{/isInteger}}{{^-last}}, {{name}}{{^isString}} = {{{value}}}{{/isString}}{{#isString}} = {{-index}}{{/isString}}{{^-last}},
{{/-last}}{{/enumVars}}{{/allowableValues}} {{/-last}}{{/enumVars}}{{/allowableValues}}
} }

View File

@ -1 +1 @@
2.3.0-SNAPSHOT 2.4.0-SNAPSHOT

View File

@ -92,7 +92,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>"; exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>";
exampleJson = "[ {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}, {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n} ]"; exampleJson = "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<List<Pet>>(exampleJson) ? JsonConvert.DeserializeObject<List<Pet>>(exampleJson)
@ -123,7 +123,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>"; exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>";
exampleJson = "[ {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}, {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n} ]"; exampleJson = "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<List<Pet>>(exampleJson) ? JsonConvert.DeserializeObject<List<Pet>>(exampleJson)
@ -158,7 +158,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>"; exampleJson = "<Pet>\n <id>123456789</id>\n <name>doggie</name>\n <photoUrls>\n <photoUrls>aeiou</photoUrls>\n </photoUrls>\n <tags>\n </tags>\n <status>aeiou</status>\n</Pet>";
exampleJson = "{\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}"; exampleJson = "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<Pet>(exampleJson) ? JsonConvert.DeserializeObject<Pet>(exampleJson)
@ -234,7 +234,7 @@ namespace IO.Swagger.Controllers
// return StatusCode(200, default(ApiResponse)); // return StatusCode(200, default(ApiResponse));
string exampleJson = null; string exampleJson = null;
exampleJson = "{\n \"message\" : \"message\",\n \"code\" : 0,\n \"type\" : \"type\"\n}"; exampleJson = "{\n \"code\" : 0,\n \"type\" : \"type\",\n \"message\" : \"message\"\n}";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<ApiResponse>(exampleJson) ? JsonConvert.DeserializeObject<ApiResponse>(exampleJson)

View File

@ -105,7 +105,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<Order>\n <id>123456789</id>\n <petId>123456789</petId>\n <quantity>123</quantity>\n <shipDate>2000-01-23T04:56:07.000Z</shipDate>\n <status>aeiou</status>\n <complete>true</complete>\n</Order>"; exampleJson = "<Order>\n <id>123456789</id>\n <petId>123456789</petId>\n <quantity>123</quantity>\n <shipDate>2000-01-23T04:56:07.000Z</shipDate>\n <status>aeiou</status>\n <complete>true</complete>\n</Order>";
exampleJson = "{\n \"id\" : 0,\n \"petId\" : 6,\n \"complete\" : false,\n \"status\" : \"placed\",\n \"quantity\" : 1,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\"\n}"; exampleJson = "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<Order>(exampleJson) ? JsonConvert.DeserializeObject<Order>(exampleJson)
@ -136,7 +136,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<Order>\n <id>123456789</id>\n <petId>123456789</petId>\n <quantity>123</quantity>\n <shipDate>2000-01-23T04:56:07.000Z</shipDate>\n <status>aeiou</status>\n <complete>true</complete>\n</Order>"; exampleJson = "<Order>\n <id>123456789</id>\n <petId>123456789</petId>\n <quantity>123</quantity>\n <shipDate>2000-01-23T04:56:07.000Z</shipDate>\n <status>aeiou</status>\n <complete>true</complete>\n</Order>";
exampleJson = "{\n \"id\" : 0,\n \"petId\" : 6,\n \"complete\" : false,\n \"status\" : \"placed\",\n \"quantity\" : 1,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\"\n}"; exampleJson = "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<Order>(exampleJson) ? JsonConvert.DeserializeObject<Order>(exampleJson)

View File

@ -137,7 +137,7 @@ namespace IO.Swagger.Controllers
string exampleJson = null; string exampleJson = null;
exampleJson = "<User>\n <id>123456789</id>\n <username>aeiou</username>\n <firstName>aeiou</firstName>\n <lastName>aeiou</lastName>\n <email>aeiou</email>\n <password>aeiou</password>\n <phone>aeiou</phone>\n <userStatus>123</userStatus>\n</User>"; exampleJson = "<User>\n <id>123456789</id>\n <username>aeiou</username>\n <firstName>aeiou</firstName>\n <lastName>aeiou</lastName>\n <email>aeiou</email>\n <password>aeiou</password>\n <phone>aeiou</phone>\n <userStatus>123</userStatus>\n</User>";
exampleJson = "{\n \"id\" : 0,\n \"lastName\" : \"lastName\",\n \"phone\" : \"phone\",\n \"username\" : \"username\",\n \"email\" : \"email\",\n \"userStatus\" : 6,\n \"firstName\" : \"firstName\",\n \"password\" : \"password\"\n}"; exampleJson = "{\n \"firstName\" : \"firstName\",\n \"lastName\" : \"lastName\",\n \"password\" : \"password\",\n \"userStatus\" : 6,\n \"phone\" : \"phone\",\n \"id\" : 0,\n \"email\" : \"email\",\n \"username\" : \"username\"\n}";
var example = exampleJson != null var example = exampleJson != null
? JsonConvert.DeserializeObject<User>(exampleJson) ? JsonConvert.DeserializeObject<User>(exampleJson)

View File

@ -50,26 +50,29 @@ namespace IO.Swagger.Models
/// </summary> /// </summary>
[DataMember(Name="shipDate")] [DataMember(Name="shipDate")]
public DateTime? ShipDate { get; set; } public DateTime? ShipDate { get; set; }
/// <summary> /// <summary>
/// Order Status /// Order Status
/// </summary> /// </summary>
/// <value>Order Status</value> /// <value>Order Status</value>
[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public enum StatusEnum public enum StatusEnum
{ {
/// <summary> /// <summary>
/// Enum PlacedEnum for "placed" /// Enum PlacedEnum for placed
/// </summary> /// </summary>
[EnumMember(Value = "placed")] [EnumMember(Value = "placed")]
PlacedEnum = 1, PlacedEnum = 1,
/// <summary> /// <summary>
/// Enum ApprovedEnum for "approved" /// Enum ApprovedEnum for approved
/// </summary> /// </summary>
[EnumMember(Value = "approved")] [EnumMember(Value = "approved")]
ApprovedEnum = 2, ApprovedEnum = 2,
/// <summary> /// <summary>
/// Enum DeliveredEnum for "delivered" /// Enum DeliveredEnum for delivered
/// </summary> /// </summary>
[EnumMember(Value = "delivered")] [EnumMember(Value = "delivered")]
DeliveredEnum = 3 DeliveredEnum = 3

View File

@ -58,26 +58,29 @@ namespace IO.Swagger.Models
/// </summary> /// </summary>
[DataMember(Name="tags")] [DataMember(Name="tags")]
public List<Tag> Tags { get; set; } public List<Tag> Tags { get; set; }
/// <summary> /// <summary>
/// pet status in the store /// pet status in the store
/// </summary> /// </summary>
/// <value>pet status in the store</value> /// <value>pet status in the store</value>
[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public enum StatusEnum public enum StatusEnum
{ {
/// <summary> /// <summary>
/// Enum AvailableEnum for "available" /// Enum AvailableEnum for available
/// </summary> /// </summary>
[EnumMember(Value = "available")] [EnumMember(Value = "available")]
AvailableEnum = 1, AvailableEnum = 1,
/// <summary> /// <summary>
/// Enum PendingEnum for "pending" /// Enum PendingEnum for pending
/// </summary> /// </summary>
[EnumMember(Value = "pending")] [EnumMember(Value = "pending")]
PendingEnum = 2, PendingEnum = 2,
/// <summary> /// <summary>
/// Enum SoldEnum for "sold" /// Enum SoldEnum for sold
/// </summary> /// </summary>
[EnumMember(Value = "sold")] [EnumMember(Value = "sold")]
SoldEnum = 3 SoldEnum = 3

View File

@ -108,8 +108,8 @@
"type" : "array", "type" : "array",
"items" : { "items" : {
"type" : "string", "type" : "string",
"enum" : [ "available", "pending", "sold" ], "default" : "available",
"default" : "available" "enum" : [ "available", "pending", "sold" ]
}, },
"collectionFormat" : "csv" "collectionFormat" : "csv"
} ], } ],
@ -685,12 +685,12 @@
"title" : "Pet Order", "title" : "Pet Order",
"description" : "An order for a pets from the pet store", "description" : "An order for a pets from the pet store",
"example" : { "example" : {
"id" : 0,
"petId" : 6, "petId" : 6,
"complete" : false,
"status" : "placed",
"quantity" : 1, "quantity" : 1,
"shipDate" : "2000-01-23T04:56:07.000+00:00" "id" : 0,
"shipDate" : "2000-01-23T04:56:07.000+00:00",
"complete" : false,
"status" : "placed"
}, },
"xml" : { "xml" : {
"name" : "Order" "name" : "Order"
@ -710,8 +710,8 @@
"title" : "Pet category", "title" : "Pet category",
"description" : "A category for a pet", "description" : "A category for a pet",
"example" : { "example" : {
"id" : 6, "name" : "name",
"name" : "name" "id" : 6
}, },
"xml" : { "xml" : {
"name" : "Category" "name" : "Category"
@ -751,14 +751,14 @@
"title" : "a User", "title" : "a User",
"description" : "A User who is purchasing from the pet store", "description" : "A User who is purchasing from the pet store",
"example" : { "example" : {
"id" : 0,
"lastName" : "lastName",
"phone" : "phone",
"username" : "username",
"email" : "email",
"userStatus" : 6,
"firstName" : "firstName", "firstName" : "firstName",
"password" : "password" "lastName" : "lastName",
"password" : "password",
"userStatus" : 6,
"phone" : "phone",
"id" : 0,
"email" : "email",
"username" : "username"
}, },
"xml" : { "xml" : {
"name" : "User" "name" : "User"
@ -778,8 +778,8 @@
"title" : "Pet Tag", "title" : "Pet Tag",
"description" : "A tag for a pet", "description" : "A tag for a pet",
"example" : { "example" : {
"id" : 1, "name" : "name",
"name" : "name" "id" : 1
}, },
"xml" : { "xml" : {
"name" : "Tag" "name" : "Tag"
@ -829,21 +829,21 @@
"title" : "a Pet", "title" : "a Pet",
"description" : "A pet for sale in the pet store", "description" : "A pet for sale in the pet store",
"example" : { "example" : {
"tags" : [ { "photoUrls" : [ "photoUrls", "photoUrls" ],
"id" : 1, "name" : "doggie",
"name" : "name"
}, {
"id" : 1,
"name" : "name"
} ],
"id" : 0, "id" : 0,
"category" : { "category" : {
"id" : 6, "name" : "name",
"name" : "name" "id" : 6
}, },
"status" : "available", "tags" : [ {
"name" : "doggie", "name" : "name",
"photoUrls" : [ "photoUrls", "photoUrls" ] "id" : 1
}, {
"name" : "name",
"id" : 1
} ],
"status" : "available"
}, },
"xml" : { "xml" : {
"name" : "Pet" "name" : "Pet"
@ -866,9 +866,9 @@
"title" : "An uploaded response", "title" : "An uploaded response",
"description" : "Describes the result of uploading an image resource", "description" : "Describes the result of uploading an image resource",
"example" : { "example" : {
"message" : "message",
"code" : 0, "code" : 0,
"type" : "type" "type" : "type",
"message" : "message"
} }
} }
}, },