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;