From cf303d4e034ce9d8eb194fb4e37a1f3409814cf9 Mon Sep 17 00:00:00 2001
From: Johann-Peter <157502294+jpduchon@users.noreply.github.com>
Date: Wed, 19 Jun 2024 11:53:00 +0200
Subject: [PATCH] [csharp] Don't apply OpenAPIDateConverter json converter
attribute for DateOnly properties (#18874)
* [csharp] Don't apply json converter attribute for DateOnly (#18541)
Applying the OpenAPIDateConverter to an DateOnly property fails at runtime with an exception.
* [csharp] Update samples
---
.../src/main/resources/csharp/modelGeneric.mustache | 2 ++
.../EnumMappings/src/Org.OpenAPITools/Model/DateOnlyClass.cs | 1 -
.../EnumMappings/src/Org.OpenAPITools/Model/FormatTest.cs | 1 -
.../EnumMappings/src/Org.OpenAPITools/Model/NullableClass.cs | 1 -
.../EnumMappings/src/Org.OpenAPITools/Model/RequiredClass.cs | 4 ----
.../net7/Petstore/src/Org.OpenAPITools/Model/DateOnlyClass.cs | 1 -
.../net7/Petstore/src/Org.OpenAPITools/Model/FormatTest.cs | 1 -
.../net7/Petstore/src/Org.OpenAPITools/Model/NullableClass.cs | 1 -
.../net7/Petstore/src/Org.OpenAPITools/Model/RequiredClass.cs | 4 ----
9 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/modules/openapi-generator/src/main/resources/csharp/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/csharp/modelGeneric.mustache
index 0729bf9f582..432b6e34b8e 100644
--- a/modules/openapi-generator/src/main/resources/csharp/modelGeneric.mustache
+++ b/modules/openapi-generator/src/main/resources/csharp/modelGeneric.mustache
@@ -219,7 +219,9 @@
{{^conditionalSerialization}}
[DataMember(Name = "{{baseName}}"{{#required}}, IsRequired = true{{/required}}, EmitDefaultValue = {{#vendorExtensions.x-emit-default-value}}true{{/vendorExtensions.x-emit-default-value}}{{^vendorExtensions.x-emit-default-value}}{{#required}}true{{/required}}{{^required}}{{#isBoolean}}true{{/isBoolean}}{{^isBoolean}}{{#isNullable}}true{{/isNullable}}{{^isNullable}}false{{/isNullable}}{{/isBoolean}}{{/required}}{{/vendorExtensions.x-emit-default-value}})]
{{#isDate}}
+ {{^supportsDateOnly}}
[JsonConverter(typeof(OpenAPIDateConverter))]
+ {{/supportsDateOnly}}
{{/isDate}}
{{#deprecated}}
[Obsolete]
diff --git a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/DateOnlyClass.cs b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/DateOnlyClass.cs
index 7bdffee0b3f..0ae21e98fd8 100644
--- a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/DateOnlyClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/DateOnlyClass.cs
@@ -47,7 +47,6 @@ namespace Org.OpenAPITools.Model
///
/// Fri Jul 21 00:00:00 UTC 2017
[DataMember(Name = "dateOnlyProperty", EmitDefaultValue = false)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly DateOnlyProperty { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/FormatTest.cs
index fbf2d842c4b..8cac7d740ff 100644
--- a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/FormatTest.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/FormatTest.cs
@@ -178,7 +178,6 @@ namespace Org.OpenAPITools.Model
///
/// Sun Feb 02 00:00:00 UTC 2020
[DataMember(Name = "date", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly Date { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/NullableClass.cs b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/NullableClass.cs
index b02bcf53586..1ae27f1846d 100644
--- a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/NullableClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/NullableClass.cs
@@ -92,7 +92,6 @@ namespace Org.OpenAPITools.Model
/// Gets or Sets DateProp
///
[DataMember(Name = "date_prop", EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly DateProp { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/RequiredClass.cs b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/RequiredClass.cs
index 55f3cbb927e..d8230f42317 100644
--- a/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/RequiredClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/EnumMappings/src/Org.OpenAPITools/Model/RequiredClass.cs
@@ -708,28 +708,24 @@ namespace Org.OpenAPITools.Model
/// Gets or Sets RequiredNullableDateProp
///
[DataMember(Name = "required_nullable_date_prop", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly RequiredNullableDateProp { get; set; }
///
/// Gets or Sets RequiredNotNullableDateProp
///
[DataMember(Name = "required_not_nullable_date_prop", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly RequiredNotNullableDateProp { get; set; }
///
/// Gets or Sets NotRequiredNullableDateProp
///
[DataMember(Name = "not_required_nullable_date_prop", EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly NotRequiredNullableDateProp { get; set; }
///
/// Gets or Sets NotRequiredNotnullableDateProp
///
[DataMember(Name = "not_required_notnullable_date_prop", EmitDefaultValue = false)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly NotRequiredNotnullableDateProp { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/DateOnlyClass.cs b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/DateOnlyClass.cs
index d850904eba7..a8f04b3453d 100644
--- a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/DateOnlyClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/DateOnlyClass.cs
@@ -46,7 +46,6 @@ namespace Org.OpenAPITools.Model
///
/// Fri Jul 21 00:00:00 UTC 2017
[DataMember(Name = "dateOnlyProperty", EmitDefaultValue = false)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly DateOnlyProperty { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/FormatTest.cs b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/FormatTest.cs
index 0521b895f5b..4ca4eff5ca4 100644
--- a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/FormatTest.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/FormatTest.cs
@@ -174,7 +174,6 @@ namespace Org.OpenAPITools.Model
///
/// Sun Feb 02 00:00:00 UTC 2020
[DataMember(Name = "date", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly Date { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/NullableClass.cs b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/NullableClass.cs
index b02bcf53586..1ae27f1846d 100644
--- a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/NullableClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/NullableClass.cs
@@ -92,7 +92,6 @@ namespace Org.OpenAPITools.Model
/// Gets or Sets DateProp
///
[DataMember(Name = "date_prop", EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly DateProp { get; set; }
///
diff --git a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/RequiredClass.cs b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/RequiredClass.cs
index 5e1eefc6482..5005d284a8e 100644
--- a/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/RequiredClass.cs
+++ b/samples/client/petstore/csharp/restsharp/net7/Petstore/src/Org.OpenAPITools/Model/RequiredClass.cs
@@ -704,28 +704,24 @@ namespace Org.OpenAPITools.Model
/// Gets or Sets RequiredNullableDateProp
///
[DataMember(Name = "required_nullable_date_prop", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly RequiredNullableDateProp { get; set; }
///
/// Gets or Sets RequiredNotNullableDateProp
///
[DataMember(Name = "required_not_nullable_date_prop", IsRequired = true, EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly RequiredNotNullableDateProp { get; set; }
///
/// Gets or Sets NotRequiredNullableDateProp
///
[DataMember(Name = "not_required_nullable_date_prop", EmitDefaultValue = true)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly NotRequiredNullableDateProp { get; set; }
///
/// Gets or Sets NotRequiredNotnullableDateProp
///
[DataMember(Name = "not_required_notnullable_date_prop", EmitDefaultValue = false)]
- [JsonConverter(typeof(OpenAPIDateConverter))]
public DateOnly NotRequiredNotnullableDateProp { get; set; }
///