add double enum support to C#

This commit is contained in:
wing328 2016-04-06 22:32:52 +08:00
parent a7ca0ad11f
commit 2942ef8b73
4 changed files with 39 additions and 32 deletions

View File

@ -402,9 +402,9 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
if ("int?".equals(datatype) || "long?".equals(datatype) || if ("int?".equals(datatype) || "long?".equals(datatype) ||
"double?".equals(datatype) || "float?".equals(datatype)) { "double?".equals(datatype) || "float?".equals(datatype)) {
String varName = "NUMBER_" + value; String varName = "NUMBER_" + value;
varName = varName.replaceAll("-", "MINUS"); varName = varName.replaceAll("-", "MINUS_");
varName = varName.replaceAll("\\+", "PLUS"); varName = varName.replaceAll("\\+", "PLUS_");
varName = varName.replaceAll("\\.", "DOT"); varName = varName.replaceAll("\\.", "_DOT_");
return varName; return varName;
} }

View File

@ -52,10 +52,30 @@ namespace IO.Swagger.Model
NUMBER_1 = 1, NUMBER_1 = 1,
/// <summary> /// <summary>
/// Enum NUMBER_MINUS1 for -1 /// Enum NUMBER_MINUS_1 for -1
/// </summary> /// </summary>
[EnumMember(Value = "-1")] [EnumMember(Value = "-1")]
NUMBER_MINUS1 = -1 NUMBER_MINUS_1 = -1
}
/// <summary>
/// Gets or Sets EnumNumber
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum EnumNumberEnum
{
/// <summary>
/// Enum NUMBER_1_DOT_1 for 1.1
/// </summary>
[EnumMember(Value = "1.1")]
NUMBER_1_DOT_1,
/// <summary>
/// Enum NUMBER_MINUS_1_DOT_2 for -1.2
/// </summary>
[EnumMember(Value = "-1.2")]
NUMBER_MINUS_1_DOT_2
} }
@ -71,6 +91,12 @@ namespace IO.Swagger.Model
[DataMember(Name="enum_integer", EmitDefaultValue=false)] [DataMember(Name="enum_integer", EmitDefaultValue=false)]
public EnumIntegerEnum? EnumInteger { get; set; } public EnumIntegerEnum? EnumInteger { get; set; }
/// <summary>
/// Gets or Sets EnumNumber
/// </summary>
[DataMember(Name="enum_number", EmitDefaultValue=false)]
public EnumNumberEnum? EnumNumber { get; set; }
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="EnumTest" /> class. /// Initializes a new instance of the <see cref="EnumTest" /> class.
/// Initializes a new instance of the <see cref="EnumTest" />class. /// Initializes a new instance of the <see cref="EnumTest" />class.
@ -79,7 +105,7 @@ namespace IO.Swagger.Model
/// <param name="EnumInteger">EnumInteger.</param> /// <param name="EnumInteger">EnumInteger.</param>
/// <param name="EnumNumber">EnumNumber.</param> /// <param name="EnumNumber">EnumNumber.</param>
public EnumTest(EnumStringEnum? EnumString = null, EnumIntegerEnum? EnumInteger = null, double? EnumNumber = null) public EnumTest(EnumStringEnum? EnumString = null, EnumIntegerEnum? EnumInteger = null, EnumNumberEnum? EnumNumber = null)
{ {
this.EnumString = EnumString; this.EnumString = EnumString;
this.EnumInteger = EnumInteger; this.EnumInteger = EnumInteger;
@ -88,12 +114,6 @@ namespace IO.Swagger.Model
} }
/// <summary>
/// Gets or Sets EnumNumber
/// </summary>
[DataMember(Name="enum_number", EmitDefaultValue=false)]
public double? EnumNumber { get; set; }
/// <summary> /// <summary>
/// Returns the string presentation of the object /// Returns the string presentation of the object
/// </summary> /// </summary>

View File

@ -1,27 +1,14 @@
<Properties StartupItem="SwaggerClientTest.csproj"> <Properties StartupItem="SwaggerClientTest.csproj">
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" /> <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
<MonoDevelop.Ide.Workbench ActiveDocument="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/EnumClass.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/Order.cs">
<Files> <Files>
<File FileName="TestPet.cs" Line="23" Column="17" /> <File FileName="TestPet.cs" Line="1" Column="1" />
<File FileName="TestOrder.cs" Line="1" Column="1" /> <File FileName="TestOrder.cs" Line="1" Column="1" />
<File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/EnumTest.cs" Line="1" Column="1" /> <File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/EnumTest.cs" Line="1" Column="1" />
<File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/Order.cs" Line="1" Column="1" /> <File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/Order.cs" Line="71" Column="57" />
<File FileName="TestEnum.cs" Line="30" Column="36" /> <File FileName="TestEnum.cs" Line="24" Column="12" />
<File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/EnumClass.cs" Line="31" Column="13" /> <File FileName="Lib/SwaggerClient/src/main/csharp/IO/Swagger/Model/EnumClass.cs" Line="1" Column="1" />
</Files> </Files>
<Pads>
<Pad Id="MonoDevelop.NUnit.TestPad">
<State name="__root__">
<Node name="SwaggerClientTest" expanded="True">
<Node name="SwaggerClientTest" expanded="True">
<Node name="SwaggerClientTest" expanded="True">
<Node name="TestEnum" expanded="True" selected="True" />
</Node>
</Node>
</Node>
</State>
</Pad>
</Pads>
</MonoDevelop.Ide.Workbench> </MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.DebuggingService.Breakpoints> <MonoDevelop.Ide.DebuggingService.Breakpoints>
<BreakpointStore /> <BreakpointStore />

View File

@ -28,10 +28,10 @@ namespace SwaggerClientTest.TestEnum
Assert.AreEqual (Newtonsoft.Json.JsonConvert.SerializeObject(EnumClass.Abc), "\"_abc\""); Assert.AreEqual (Newtonsoft.Json.JsonConvert.SerializeObject(EnumClass.Abc), "\"_abc\"");
// test serialization for number // test serialization for number
Assert.AreEqual (Newtonsoft.Json.JsonConvert.SerializeObject(EnumTest.EnumIntegerEnum.NUMBER_MINUS1), "\"-1\""); Assert.AreEqual (Newtonsoft.Json.JsonConvert.SerializeObject(EnumTest.EnumIntegerEnum.NUMBER_MINUS_1), "\"-1\"");
// test cast to int // test cast to int
Assert.AreEqual ((int)EnumTest.EnumIntegerEnum.NUMBER_MINUS1, -1); Assert.AreEqual ((int)EnumTest.EnumIntegerEnum.NUMBER_MINUS_1, -1);
} }
} }