diff --git a/.gitignore b/.gitignore index 7e159cb79ad..d864b9076a3 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ packages/ .packages .vagrant/ .vscode/ +**/.vs .settings @@ -128,7 +129,6 @@ samples/client/petstore/swift3/**/SwaggerClientTests/Podfile.lock # C# *.csproj.user samples/client/petstore/csharp/SwaggerClient/IO.Swagger.userprefs -samples/client/petstore/csharp/SwaggerClientTest/.vs samples/client/petstore/csharp/SwaggerClientTest/obj samples/client/petstore/csharp/SwaggerClientTest/bin samples/client/petstore/csharp/SwaggerClientTest/packages diff --git a/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache index 8e20992645a..44e2bb9a92f 100644 --- a/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache +++ b/modules/openapi-generator/src/main/resources/csharp-refactor/modelGeneric.mustache @@ -31,7 +31,7 @@ {{#description}} /// {{description}} {{/description}} - [DataMember(Name="{{baseName}}", EmitDefaultValue={{emitDefaultValue}})] + [DataMember(Name="{{baseName}}", EmitDefaultValue={{#isNullable}}true{{/isNullable}}{{^isNullable}}{{emitDefaultValue}}{{/isNullable}})] public {{#complexType}}{{{complexType}}}{{/complexType}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}} {{name}} { get; set; } {{/isEnum}} {{/vars}} @@ -70,12 +70,16 @@ { this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; } + {{/isEnum}} {{#isEnum}} this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; {{/isEnum}} {{/required}} {{/isNullable}} + {{#isNullable}} + this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + {{/isNullable}} {{/isReadOnly}} {{/isInherited}} {{/vars}} @@ -110,7 +114,7 @@ /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{description}}{{/description}} /// {{#description}} /// {{description}}{{/description}} - [DataMember(Name="{{baseName}}", EmitDefaultValue={{emitDefaultValue}})]{{#isDate}} + [DataMember(Name="{{baseName}}", EmitDefaultValue={{#isNullable}}true{{/isNullable}}{{^isNullable}}{{emitDefaultValue}}{{/isNullable}})]{{#isDate}} [JsonConverter(typeof(OpenAPIDateConverter))]{{/isDate}} public {{{dataType}}} {{name}} { get; {{#isReadOnly}}private {{/isReadOnly}}set; } diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml deleted file mode 100644 index a8f79ac3611..00000000000 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/UserPrefs.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/db.lock b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/db.lock deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide deleted file mode 100644 index 1271dcd581e..00000000000 Binary files a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide and /dev/null differ diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm deleted file mode 100644 index f7321213a2f..00000000000 Binary files a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-shm and /dev/null differ diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal b/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal deleted file mode 100644 index dbbb3aefb43..00000000000 Binary files a/samples/client/petstore/csharp-refactor/OpenAPIClient/.vs/Org.OpenAPITools/xs/sqlite3/storage.ide-wal and /dev/null differ diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs index 2bb993ae8ca..0eb60b7b6f9 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools.Test/Model/PetTests.cs @@ -116,6 +116,17 @@ namespace Org.OpenAPITools.Test // TODO unit test for the property 'Status' } + /// + /// Test serialization + /// + [Test()] + public void TestSerialization() + { + // create pet + Pet p1 = new Pet(name: "Csharp test", photoUrls: new List { "http://petstore.com/csharp_test" }); + Assert.AreEqual("{\"name\":\"Csharp test\",\"photoUrls\":[\"http://petstore.com/csharp_test\"]}", JsonConvert.SerializeObject(p1)); + } + /// /// Test Equal /// diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs index ca40389f098..05f7b55a424 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Animal.cs @@ -57,6 +57,7 @@ namespace Org.OpenAPITools.Model { this.ClassName = className; } + // use default value if no "color" provided if (color == null) { diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs index 0099aca04ea..c847814bf1a 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Category.cs @@ -53,6 +53,7 @@ namespace Org.OpenAPITools.Model { this.Name = name; } + this.Id = id; } diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs index 12b78823a09..88f748b828d 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/FormatTest.cs @@ -64,6 +64,7 @@ namespace Org.OpenAPITools.Model { this.Number = number; } + // to ensure "_byte" is required (not null) if (_byte == null) { @@ -73,6 +74,7 @@ namespace Org.OpenAPITools.Model { this.Byte = _byte; } + // to ensure "date" is required (not null) if (date == null) { @@ -82,6 +84,7 @@ namespace Org.OpenAPITools.Model { this.Date = date; } + // to ensure "password" is required (not null) if (password == null) { @@ -91,6 +94,7 @@ namespace Org.OpenAPITools.Model { this.Password = password; } + this.Integer = integer; this.Int32 = int32; this.Int64 = int64; diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs index 84fefb6ca23..9549d8f9293 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs @@ -53,6 +53,7 @@ namespace Org.OpenAPITools.Model { this._Name = name; } + this.Property = property; } diff --git a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs index 8f07820954d..9d217b2ad2b 100644 --- a/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs +++ b/samples/client/petstore/csharp-refactor/OpenAPIClient/src/Org.OpenAPITools/Model/Pet.cs @@ -90,6 +90,7 @@ namespace Org.OpenAPITools.Model { this.Name = name; } + // to ensure "photoUrls" is required (not null) if (photoUrls == null) { @@ -99,6 +100,7 @@ namespace Org.OpenAPITools.Model { this.PhotoUrls = photoUrls; } + this.Id = id; this.Category = category; this.Tags = tags;