diff --git a/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache index 6849674ff52..0b0f33a9307 100644 --- a/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache +++ b/modules/openapi-generator/src/main/resources/csharp-netcore/modelGeneric.mustache @@ -35,6 +35,17 @@ {{/description}} [DataMember(Name = "{{baseName}}"{{#required}}, IsRequired = true{{/required}}, EmitDefaultValue = {{#vendorExtensions.x-emit-default-value}}true{{/vendorExtensions.x-emit-default-value}}{{^vendorExtensions.x-emit-default-value}}{{#isNullable}}true{{/isNullable}}{{^isNullable}}false{{/isNullable}}{{/vendorExtensions.x-emit-default-value}})] public {{#complexType}}{{{complexType}}}{{/complexType}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}} {{name}} { get; set; } + {{#isReadOnly}} + + /// + /// Returns false as {{name}} should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize{{name}}() + { + return false; + } + {{/isReadOnly}} {{/isEnum}} {{/vars}} {{#hasRequired}} @@ -118,6 +129,17 @@ {{/isDate}} public {{{dataType}}} {{name}} { get; {{#isReadOnly}}private {{/isReadOnly}}set; } + {{#isReadOnly}} + /// + /// Returns false as {{name}} should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize{{name}}() + { + return false; + } + + {{/isReadOnly}} {{/isEnum}} {{/isInherited}} {{/vars}} diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs index c339d9213d5..f9acea4a20b 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs @@ -47,12 +47,30 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Foo /// [DataMember(Name = "foo", EmitDefaultValue = false)] public string Foo { get; private set; } + /// + /// Returns false as Foo should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeFoo() + { + return false; + } + /// /// Gets or Sets additional properties /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs index ab4ad85ad10..d110bce48fd 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/Name.cs @@ -64,6 +64,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "snake_case", EmitDefaultValue = false)] public int SnakeCase { get; private set; } + /// + /// Returns false as SnakeCase should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeSnakeCase() + { + return false; + } + /// /// Gets or Sets Property /// @@ -76,6 +85,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "123Number", EmitDefaultValue = false)] public int _123Number { get; private set; } + /// + /// Returns false as _123Number should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize_123Number() + { + return false; + } + /// /// Gets or Sets additional properties /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs index d30f36c3888..65828ea4a98 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient-net47/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs @@ -48,6 +48,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Baz /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs index 2d2fd1316a9..8911ce6ac36 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools.Test/JSONComposedSchemaTests.cs @@ -27,7 +27,7 @@ namespace Org.OpenAPITools.Test /// Test GetServerUrl /// [Fact] - public void testOneOfSchemaAdditionalProperties() + public void TestOneOfSchemaAdditionalProperties() { // TODO } @@ -36,7 +36,7 @@ namespace Org.OpenAPITools.Test /// Test GetServerUrl /// [Fact] - public void testOneOfSchemaWithDiscriminator() + public void TestOneOfSchemaWithDiscriminator() { // Mammal can be one of whale, pig and zebra. // pig has sub-classes. @@ -45,7 +45,7 @@ namespace Org.OpenAPITools.Test Mammal m = Mammal.FromJson(str); Assert.NotNull(m); Assert.IsType(m.ActualInstance); - + String str2 = "{ \"className\": \"zebra\", \"type\": \"plains\" }"; Mammal m2 = Mammal.FromJson(str2); Assert.NotNull(m2); @@ -56,7 +56,7 @@ namespace Org.OpenAPITools.Test /// Test Fruit /// [Fact] - public void testFruit() + public void TestFruit() { Apple a = new Apple(); a.Origin = "Japan"; @@ -95,5 +95,16 @@ namespace Org.OpenAPITools.Test // test custom serializer Assert.Equal("{\"lengthCm\":98.0}", JsonConvert.SerializeObject(f5)); } + + /// + /// ReadOnly property tests + /// + [Fact] + public void ReadOnlyFruit() + { + ReadOnlyFirst r = JsonConvert.DeserializeObject("{\"baz\":\"from json gaz\",\"bar\":\"from json bar\"}"); + Assert.Equal("from json bar", r.Bar); + Assert.Equal("{\"baz\":\"from json gaz\"}", JsonConvert.SerializeObject(r)); + } } } \ No newline at end of file diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs index c339d9213d5..f9acea4a20b 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs @@ -47,12 +47,30 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Foo /// [DataMember(Name = "foo", EmitDefaultValue = false)] public string Foo { get; private set; } + /// + /// Returns false as Foo should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeFoo() + { + return false; + } + /// /// Gets or Sets additional properties /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs index ab4ad85ad10..d110bce48fd 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/Name.cs @@ -64,6 +64,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "snake_case", EmitDefaultValue = false)] public int SnakeCase { get; private set; } + /// + /// Returns false as SnakeCase should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeSnakeCase() + { + return false; + } + /// /// Gets or Sets Property /// @@ -76,6 +85,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "123Number", EmitDefaultValue = false)] public int _123Number { get; private set; } + /// + /// Returns false as _123Number should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize_123Number() + { + return false; + } + /// /// Gets or Sets additional properties /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs index d30f36c3888..65828ea4a98 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClient/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs @@ -48,6 +48,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Baz /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs index 56025dd01d7..1a7ca766e79 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/HasOnlyReadOnly.cs @@ -46,12 +46,30 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Foo /// [DataMember(Name = "foo", EmitDefaultValue = false)] public string Foo { get; private set; } + /// + /// Returns false as Foo should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeFoo() + { + return false; + } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs index bf0b534b7f3..87642a1ba7b 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/Name.cs @@ -60,6 +60,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "snake_case", EmitDefaultValue = false)] public int SnakeCase { get; private set; } + /// + /// Returns false as SnakeCase should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeSnakeCase() + { + return false; + } + /// /// Gets or Sets Property /// @@ -72,6 +81,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "123Number", EmitDefaultValue = false)] public int _123Number { get; private set; } + /// + /// Returns false as _123Number should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerialize_123Number() + { + return false; + } + /// /// Returns the string presentation of the object /// diff --git a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs index 1a24ed159c7..af290bd3a34 100644 --- a/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs +++ b/samples/client/petstore/csharp-netcore/OpenAPIClientCore/src/Org.OpenAPITools/Model/ReadOnlyFirst.cs @@ -47,6 +47,15 @@ namespace Org.OpenAPITools.Model [DataMember(Name = "bar", EmitDefaultValue = false)] public string Bar { get; private set; } + /// + /// Returns false as Bar should not be serialized given that it's read-only. + /// + /// false (boolean) + public bool ShouldSerializeBar() + { + return false; + } + /// /// Gets or Sets Baz ///