diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonConverter.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonConverter.mustache index 7948f79dbf7c..2d0a31f56156 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonConverter.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/JsonConverter.mustache @@ -43,8 +43,25 @@ {{#lambda.trimLineBreaks}} int currentDepth = utf8JsonReader.CurrentDepth; + {{#composedSchemas.oneOf}} + {{#-first}} + bool oneOfHasPrimitiveType = false; + {{/-first}} + {{#isPrimitiveType}} + oneOfHasPrimitiveType = true; + {{/isPrimitiveType}} + {{#-last}} + + if (!oneOfHasPrimitiveType && + utf8JsonReader.TokenType != JsonTokenType.StartObject && + utf8JsonReader.TokenType != JsonTokenType.StartArray) + throw new JsonException(); + {{/-last}} + {{/composedSchemas.oneOf}} + {{^composedSchemas.oneOf}} if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) throw new JsonException(); + {{/composedSchemas.oneOf}} JsonTokenType startingTokenType = utf8JsonReader.TokenType; @@ -113,24 +130,54 @@ {{{datatypeWithEnum}}}{{nrt?}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}} {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = default; {{#-last}} - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + + if (oneOfHasPrimitiveType && + startingTokenType != JsonTokenType.StartObject && + startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + {{#oneOf}} + {{^vendorExtensions.x-duplicated-data-type}} + {{#isPrimitiveType}} + {{^isAnyType}} + {{^isFreeFormObject}} + {{^isContainer}} + Utf8JsonReader utf8JsonReader{{name}} = utf8JsonReader; + if (ClientUtils.TryDeserialize<{{{datatypeWithEnum}}}{{nrt?}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}}>(ref utf8JsonReader{{name}}, jsonSerializerOptions, out {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}) && + {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} != null) + { + return new {{classname}}({{#lambda.joinWithComma}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#vendorExtensions.x-is-value-type}}.Value{{/vendorExtensions.x-is-value-type}} {{#model.composedSchemas.anyOf}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#vendorExtensions.x-is-value-type}}{{^isNullable}}.Value{{/isNullable}}{{/vendorExtensions.x-is-value-type}} {{/model.composedSchemas.anyOf}}{{#allVars}}{{^isDiscriminator}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#required}}ParsedValue{{/required}} {{/isDiscriminator}}{{/allVars}}{{/lambda.joinWithComma}}); + } - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + {{/isContainer}} + {{/isFreeFormObject}} + {{/isAnyType}} + {{/isPrimitiveType}} + {{/vendorExtensions.x-duplicated-data-type}} + {{/oneOf}} - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + throw new JsonException(); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - {{#oneOf}} - Utf8JsonReader utf8JsonReader{{name}} = utf8JsonReader; - ClientUtils.TryDeserialize<{{{datatypeWithEnum}}}{{nrt?}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}}>(ref utf8JsonReader{{name}}, jsonSerializerOptions, out {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}); - {{^-last}} + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - {{/-last}} - {{/oneOf}} + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; + + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + {{#oneOf}} + Utf8JsonReader utf8JsonReader{{name}} = utf8JsonReader; + ClientUtils.TryDeserialize<{{{datatypeWithEnum}}}{{nrt?}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}}>(ref utf8JsonReader{{name}}, jsonSerializerOptions, out {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}); + {{^-last}} + + {{/-last}} + {{/oneOf}} + } } } {{/-last}} @@ -376,7 +423,71 @@ {{/children}} {{/discriminator}} + {{^model.discriminator}} + {{#composedSchemas}} + + {{#oneOf}} + {{#-first}} + int oneOfCount = 0; + {{/-first}} + {{^vendorExtensions.x-duplicated-data-type}} + if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} != null) + oneOfCount++; + {{/vendorExtensions.x-duplicated-data-type}} + {{#-last}} + + if (oneOfCount > 1) + throw new JsonException("Only one oneOf value can be set."); + + {{/-last}} + {{/oneOf}} + + {{#oneOf}} + {{#isPrimitiveType}} + {{#isContainer}} + if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} != null) + { + JsonSerializer.Serialize(writer, {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}, jsonSerializerOptions); + return; + } + + {{/isContainer}} + {{^isContainer}} + {{^vendorExtensions.x-duplicated-data-type}} + if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} != null) + { + JsonSerializer.Serialize(writer, {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}, jsonSerializerOptions); + return; + } + + {{/vendorExtensions.x-duplicated-data-type}} + {{/isContainer}} + {{/isPrimitiveType}} + {{/oneOf}} + {{/composedSchemas}} + {{/model.discriminator}} writer.WriteStartObject(); + {{^model.discriminator}} + {{#composedSchemas}} + {{#oneOf}} + {{^vendorExtensions.x-duplicated-data-type}} + {{#isModel}} + {{^isContainer}} + if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} != null) + { + {{baseType}}JsonConverter? {{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}} = jsonSerializerOptions.Converters.FirstOrDefault(c => c.CanConvert({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.GetType())) as {{baseType}}JsonConverter; + if ({{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}} == null) + throw new NotSupportedException("No compatible {{baseType}}JsonConverter was found for type " + {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.GetType().FullName + "."); + + {{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}}.WriteProperties(writer, {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}, jsonSerializerOptions); + } + + {{/isContainer}} + {{/isModel}} + {{/vendorExtensions.x-duplicated-data-type}} + {{/oneOf}} + {{/composedSchemas}} + {{/model.discriminator}} {{#model.discriminator}} {{#model.hasDiscriminatorWithNonEmptyMapping}} @@ -396,7 +507,10 @@ {{/isPrimitiveType}} {{^isPrimitiveType}} { - {{baseType}}JsonConverter {{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}} = ({{baseType}}JsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.GetType())); + {{baseType}}JsonConverter? {{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}} = jsonSerializerOptions.Converters.FirstOrDefault(c => c.CanConvert({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.GetType())) as {{baseType}}JsonConverter; + if ({{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}} == null) + throw new NotSupportedException("No compatible {{baseType}}JsonConverter was found for type " + {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.GetType().FullName + "."); + {{#lambda.camelcase_sanitize_param}}{{baseType}}JsonConverter{{/lambda.camelcase_sanitize_param}}.WriteProperties(writer, {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}, jsonSerializerOptions); } {{/isPrimitiveType}} diff --git a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/OneOfNullableTest.cs b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/OneOfNullableTest.cs index 2d632afcb947..3910768cfdfe 100644 --- a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/OneOfNullableTest.cs +++ b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/OneOfNullableTest.cs @@ -179,6 +179,18 @@ public override OneOfNullableTest Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, OneOfNullableTest oneOfNullableTest, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfNullableTest.Int != null) + { + JsonSerializer.Serialize(writer, oneOfNullableTest.Int, jsonSerializerOptions); + return; + } + + if (oneOfNullableTest.String != null) + { + JsonSerializer.Serialize(writer, oneOfNullableTest.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfNullableTest, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/ParentWithPluralOneOfPropertyNumber.cs b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/ParentWithPluralOneOfPropertyNumber.cs index 42eb5c9cd94d..c582bc79731b 100644 --- a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/ParentWithPluralOneOfPropertyNumber.cs +++ b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Model/ParentWithPluralOneOfPropertyNumber.cs @@ -178,6 +178,18 @@ public override ParentWithPluralOneOfPropertyNumber Read(ref Utf8JsonReader utf8 /// public override void Write(Utf8JsonWriter writer, ParentWithPluralOneOfPropertyNumber parentWithPluralOneOfPropertyNumber, JsonSerializerOptions jsonSerializerOptions) { + if (parentWithPluralOneOfPropertyNumber.Number != null) + { + JsonSerializer.Serialize(writer, parentWithPluralOneOfPropertyNumber.Number, jsonSerializerOptions); + return; + } + + if (parentWithPluralOneOfPropertyNumber.Number2 != null) + { + JsonSerializer.Serialize(writer, parentWithPluralOneOfPropertyNumber.Number2, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, parentWithPluralOneOfPropertyNumber, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Model/OneOfArrayRequest.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Model/OneOfArrayRequest.cs index 8ce7469d7bca..e0c6959bd5cd 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Model/OneOfArrayRequest.cs +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Model/OneOfArrayRequest.cs @@ -178,6 +178,18 @@ public override OneOfArrayRequest Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, OneOfArrayRequest oneOfArrayRequest, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfArrayRequest.List != null) + { + JsonSerializer.Serialize(writer, oneOfArrayRequest.List, jsonSerializerOptions); + return; + } + + if (oneOfArrayRequest.List1 != null) + { + JsonSerializer.Serialize(writer, oneOfArrayRequest.List1, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfArrayRequest, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/Fruit.cs index f6b30057b6ca..46a871ba0394 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/Fruit.cs @@ -205,6 +205,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/FruitReq.cs index 1b20a9969162..91f7e067f9b7 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/FruitReq.cs @@ -179,6 +179,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 2712457d30f9..11396c56a846 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -244,7 +244,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/OneOfString.cs index f18374410642..d4887828f80f 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/OneOfString.cs @@ -140,6 +140,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index 9f2518b49d53..4e838c262f80 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -222,6 +222,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..523e4981cf08 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs index ec0062ba20d3..67cb3b13af6c 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs @@ -206,6 +206,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs index af1802aab1a9..d73d15fdc718 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs @@ -180,6 +180,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index bac36e3cbe70..2b27c5610dad 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -252,7 +252,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs index e03117058c32..50b6a7869b9f 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs @@ -148,6 +148,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d33ed7654562..6aeb2e63b84d 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -230,6 +230,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Model/Fruit.cs index 1a4743015087..be03ed7e708e 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Model/Fruit.cs @@ -237,6 +237,23 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } + + if (fruit.Orange != null) + { + OrangeJsonConverter orangeJsonConverter = (OrangeJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Orange.GetType())); + orangeJsonConverter.WriteProperties(writer, fruit.Orange, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..523e4981cf08 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs index 9bad6c70417c..8e385da82a91 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs @@ -207,6 +207,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs index ed5e1e35c028..361da9371288 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs @@ -181,6 +181,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index ca6ca27187dd..c96886067b6b 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -253,7 +253,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs index 4a46f52ead3a..df1341c55fed 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs @@ -149,6 +149,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d3e959b95a67..114391721fd3 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -231,6 +231,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/Fruit.cs index ba5d85932b34..453be949b65f 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.7/OneOf/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.7/OneOf/src/Org.OpenAPITools/Model/Fruit.cs index e2e2f33c524d..617047885a4a 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/OneOf/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/OneOf/src/Org.OpenAPITools/Model/Fruit.cs @@ -235,6 +235,23 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } + + if (fruit.Orange != null) + { + OrangeJsonConverter orangeJsonConverter = (OrangeJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Orange.GetType())); + orangeJsonConverter.WriteProperties(writer, fruit.Orange, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ba5d85932b34..453be949b65f 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net4.7/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs index ba5d85932b34..453be949b65f 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs index e2e2f33c524d..617047885a4a 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs @@ -235,6 +235,23 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } + + if (fruit.Orange != null) + { + OrangeJsonConverter orangeJsonConverter = (OrangeJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Orange.GetType())); + orangeJsonConverter.WriteProperties(writer, fruit.Orange, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ba5d85932b34..453be949b65f 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net4.8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..c9638e5b9882 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Fruit.cs @@ -129,9 +129,6 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option color = default; @@ -139,22 +136,33 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert Apple apple = default; Banana banana = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; + + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + + Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + } } } @@ -204,6 +212,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..2bb8e810357b 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs @@ -111,30 +111,38 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; AppleReq appleReq = default; BananaReq bananaReq = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; + + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); + + Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + } } } @@ -178,6 +186,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Mammal.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Mammal.cs index 9bc6bbaaf9b9..887a0aa826cf 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Mammal.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Mammal.cs @@ -143,9 +143,6 @@ public override Mammal Read(ref Utf8JsonReader utf8JsonReader, Type typeToConver { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option className = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..000f8dddd5cc 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -163,9 +163,6 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; string varString = default; @@ -174,31 +171,51 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t decimal? varDecimal = default; MixedSubId mixedSubId = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); + + Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderString = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); - Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); + Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); - Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + } } } @@ -250,7 +267,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs index dd205b2df274..4b17a388c158 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs @@ -128,9 +128,6 @@ public override NullableShape Read(ref Utf8JsonReader utf8JsonReader, Type typeT { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..abe2bb642287 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs @@ -103,9 +103,6 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; string varString = default; @@ -146,6 +143,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Pig.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Pig.cs index 3d7b78a18292..ec64315fb235 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Pig.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Pig.cs @@ -128,9 +128,6 @@ public override Pig Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option className = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..6e4ff3f20b9c 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -148,9 +148,6 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; bool? varBool = default; @@ -158,28 +155,45 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type Object varObject = default; List list = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); + + Utf8JsonReader utf8JsonReaderList = utf8JsonReader; + ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderString = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + + Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); - Utf8JsonReader utf8JsonReaderList = utf8JsonReader; - ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + Utf8JsonReader utf8JsonReaderList = utf8JsonReader; + ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + } } } @@ -228,6 +242,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs index f1b8095c949f..2381d0df3f1e 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs @@ -128,9 +128,6 @@ public override Quadrilateral Read(ref Utf8JsonReader utf8JsonReader, Type typeT { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option quadrilateralType = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Shape.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Shape.cs index 7a2dd62962fb..d230cf0bb29c 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Shape.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Shape.cs @@ -128,9 +128,6 @@ public override Shape Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs index 52a892aeb9e1..30d965bad4c6 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs @@ -128,9 +128,6 @@ public override ShapeOrNull Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Triangle.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Triangle.cs index 9e1ae42200c6..96859dae2927 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Triangle.cs +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Model/Triangle.cs @@ -143,9 +143,6 @@ public override Triangle Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option triangleType = default; diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs index ec0062ba20d3..67cb3b13af6c 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs @@ -206,6 +206,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs index af1802aab1a9..d73d15fdc718 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs @@ -180,6 +180,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index bac36e3cbe70..2b27c5610dad 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -252,7 +252,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs index e03117058c32..50b6a7869b9f 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs @@ -148,6 +148,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d33ed7654562..6aeb2e63b84d 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -230,6 +230,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools.Test/Model/FruitTests.cs b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools.Test/Model/FruitTests.cs index a6607ae5d56d..8eb2a2d59126 100644 --- a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools.Test/Model/FruitTests.cs +++ b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools.Test/Model/FruitTests.cs @@ -17,6 +17,7 @@ using Org.OpenAPITools.Model; using Org.OpenAPITools.Client; using System.Reflection; +using System.Text.Json; namespace Org.OpenAPITools.Test.Model { @@ -61,5 +62,40 @@ public void ColorTest() { // TODO unit test for the property 'Color' } + + [Fact] + public void SerializeOneOfReferencedObject() + { + var options = new JsonSerializerOptions(); + options.Converters.Add(new AppleJsonConverter()); + options.Converters.Add(new BananaJsonConverter()); + options.Converters.Add(new FruitJsonConverter()); + options.Converters.Add(new OrangeJsonConverter()); + + Fruit fruit = new Fruit(new Apple("red")); + + string json = JsonSerializer.Serialize(fruit, options); + + Assert.Equal("{\"kind\":\"red\"}", json); + } + + [Fact] + public void SerializeOneOfReferencedObjectWithSiblingProperty() + { + var options = new JsonSerializerOptions(); + options.Converters.Add(new AppleJsonConverter()); + options.Converters.Add(new BananaJsonConverter()); + options.Converters.Add(new FruitJsonConverter()); + options.Converters.Add(new OrangeJsonConverter()); + + Fruit fruit = new Fruit( + new Apple("red"), + new Option("green") + ); + + string json = JsonSerializer.Serialize(fruit, options); + + Assert.Equal("{\"kind\":\"red\",\"color\":\"green\"}", json); + } } } diff --git a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs index 1a4743015087..e96d87414fc6 100644 --- a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Model/Fruit.cs @@ -155,7 +155,11 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) + bool oneOfHasPrimitiveType = false; + + if (!oneOfHasPrimitiveType && + utf8JsonReader.TokenType != JsonTokenType.StartObject && + utf8JsonReader.TokenType != JsonTokenType.StartArray) throw new JsonException(); JsonTokenType startingTokenType = utf8JsonReader.TokenType; @@ -166,25 +170,35 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert Banana? banana = default; Orange? orange = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (oneOfHasPrimitiveType && + startingTokenType != JsonTokenType.StartObject && + startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + throw new JsonException(); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderOrange = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderOrange, jsonSerializerOptions, out orange); + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + + Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + + Utf8JsonReader utf8JsonReaderOrange = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderOrange, jsonSerializerOptions, out orange); + } } } @@ -236,7 +250,45 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert /// public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { + + int oneOfCount = 0; + if (fruit.Apple != null) + oneOfCount++; + if (fruit.Banana != null) + oneOfCount++; + if (fruit.Orange != null) + oneOfCount++; + + if (oneOfCount > 1) + throw new JsonException("Only one oneOf value can be set."); + writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter? appleJsonConverter = jsonSerializerOptions.Converters.FirstOrDefault(c => c.CanConvert(fruit.Apple.GetType())) as AppleJsonConverter; + if (appleJsonConverter == null) + throw new NotSupportedException("No compatible AppleJsonConverter was found for type " + fruit.Apple.GetType().FullName + "."); + + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter? bananaJsonConverter = jsonSerializerOptions.Converters.FirstOrDefault(c => c.CanConvert(fruit.Banana.GetType())) as BananaJsonConverter; + if (bananaJsonConverter == null) + throw new NotSupportedException("No compatible BananaJsonConverter was found for type " + fruit.Banana.GetType().FullName + "."); + + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } + + if (fruit.Orange != null) + { + OrangeJsonConverter? orangeJsonConverter = jsonSerializerOptions.Converters.FirstOrDefault(c => c.CanConvert(fruit.Orange.GetType())) as OrangeJsonConverter; + if (orangeJsonConverter == null) + throw new NotSupportedException("No compatible OrangeJsonConverter was found for type " + fruit.Orange.GetType().FullName + "."); + + orangeJsonConverter.WriteProperties(writer, fruit.Orange, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..523e4981cf08 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs index 9bad6c70417c..8e385da82a91 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs @@ -207,6 +207,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs index ed5e1e35c028..361da9371288 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs @@ -181,6 +181,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index ca6ca27187dd..c96886067b6b 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -253,7 +253,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs index 4a46f52ead3a..df1341c55fed 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs @@ -149,6 +149,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d3e959b95a67..114391721fd3 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -231,6 +231,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..c9638e5b9882 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Fruit.cs @@ -129,9 +129,6 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option color = default; @@ -139,22 +136,33 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert Apple apple = default; Banana banana = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; + + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderApple = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderApple, jsonSerializerOptions, out apple); + + Utf8JsonReader utf8JsonReaderBanana = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBanana, jsonSerializerOptions, out banana); + } } } @@ -204,6 +212,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..2bb8e810357b 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/FruitReq.cs @@ -111,30 +111,38 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; AppleReq appleReq = default; BananaReq bananaReq = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; - - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; + + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderAppleReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderAppleReq, jsonSerializerOptions, out appleReq); + + Utf8JsonReader utf8JsonReaderBananaReq = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBananaReq, jsonSerializerOptions, out bananaReq); + } } } @@ -178,6 +186,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Mammal.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Mammal.cs index 9bc6bbaaf9b9..887a0aa826cf 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Mammal.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Mammal.cs @@ -143,9 +143,6 @@ public override Mammal Read(ref Utf8JsonReader utf8JsonReader, Type typeToConver { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option className = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..000f8dddd5cc 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -163,9 +163,6 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; string varString = default; @@ -174,31 +171,51 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t decimal? varDecimal = default; MixedSubId mixedSubId = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); + + Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderString = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderInt = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderInt, jsonSerializerOptions, out varInt); - Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); + Utf8JsonReader utf8JsonReaderDecimal = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderDecimal, jsonSerializerOptions, out varDecimal); - Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + Utf8JsonReader utf8JsonReaderMixedSubId = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderMixedSubId, jsonSerializerOptions, out mixedSubId); + } } } @@ -250,7 +267,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs index dd205b2df274..4b17a388c158 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/NullableShape.cs @@ -128,9 +128,6 @@ public override NullableShape Read(ref Utf8JsonReader utf8JsonReader, Type typeT { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..abe2bb642287 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/OneOfString.cs @@ -103,9 +103,6 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; string varString = default; @@ -146,6 +143,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Pig.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Pig.cs index 3d7b78a18292..ec64315fb235 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Pig.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Pig.cs @@ -128,9 +128,6 @@ public override Pig Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option className = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..6e4ff3f20b9c 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -148,9 +148,6 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; bool? varBool = default; @@ -158,28 +155,45 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type Object varObject = default; List list = default; - Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; - while (utf8JsonReaderOneOf.Read()) + if (startingTokenType != JsonTokenType.StartObject && startingTokenType != JsonTokenType.StartArray) { - if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); - if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) - break; + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); - if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); + + Utf8JsonReader utf8JsonReaderList = utf8JsonReader; + ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + } + else + { + Utf8JsonReader utf8JsonReaderOneOf = utf8JsonReader; + while (utf8JsonReaderOneOf.Read()) { - Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + if (startingTokenType == JsonTokenType.StartObject && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndObject && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderString = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + if (startingTokenType == JsonTokenType.StartArray && utf8JsonReaderOneOf.TokenType == JsonTokenType.EndArray && currentDepth == utf8JsonReaderOneOf.CurrentDepth) + break; - Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; - ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); + if (utf8JsonReaderOneOf.TokenType == JsonTokenType.PropertyName && currentDepth == utf8JsonReaderOneOf.CurrentDepth - 1) + { + Utf8JsonReader utf8JsonReaderBool = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderBool, jsonSerializerOptions, out varBool); + + Utf8JsonReader utf8JsonReaderString = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderString, jsonSerializerOptions, out varString); + + Utf8JsonReader utf8JsonReaderObject = utf8JsonReader; + ClientUtils.TryDeserialize(ref utf8JsonReaderObject, jsonSerializerOptions, out varObject); - Utf8JsonReader utf8JsonReaderList = utf8JsonReader; - ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + Utf8JsonReader utf8JsonReaderList = utf8JsonReader; + ClientUtils.TryDeserialize>(ref utf8JsonReaderList, jsonSerializerOptions, out list); + } } } @@ -228,6 +242,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs index f1b8095c949f..2381d0df3f1e 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Quadrilateral.cs @@ -128,9 +128,6 @@ public override Quadrilateral Read(ref Utf8JsonReader utf8JsonReader, Type typeT { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option quadrilateralType = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Shape.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Shape.cs index 7a2dd62962fb..d230cf0bb29c 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Shape.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Shape.cs @@ -128,9 +128,6 @@ public override Shape Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs index 52a892aeb9e1..30d965bad4c6 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/ShapeOrNull.cs @@ -128,9 +128,6 @@ public override ShapeOrNull Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option shapeType = default; diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Triangle.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Triangle.cs index 9e1ae42200c6..96859dae2927 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Triangle.cs +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Model/Triangle.cs @@ -143,9 +143,6 @@ public override Triangle Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { int currentDepth = utf8JsonReader.CurrentDepth; - if (utf8JsonReader.TokenType != JsonTokenType.StartObject && utf8JsonReader.TokenType != JsonTokenType.StartArray) - throw new JsonException(); - JsonTokenType startingTokenType = utf8JsonReader.TokenType; Option triangleType = default; diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs index ec0062ba20d3..67cb3b13af6c 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/Fruit.cs @@ -206,6 +206,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs index af1802aab1a9..d73d15fdc718 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/FruitReq.cs @@ -180,6 +180,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index bac36e3cbe70..2b27c5610dad 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -252,7 +252,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs index e03117058c32..50b6a7869b9f 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/OneOfString.cs @@ -148,6 +148,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d33ed7654562..6aeb2e63b84d 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -230,6 +230,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Model/Fruit.cs index 1a4743015087..be03ed7e708e 100644 --- a/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Model/Fruit.cs @@ -237,6 +237,23 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } + + if (fruit.Orange != null) + { + OrangeJsonConverter orangeJsonConverter = (OrangeJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Orange.GetType())); + orangeJsonConverter.WriteProperties(writer, fruit.Orange, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ca703d27f96c..523e4981cf08 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs index 9bad6c70417c..8e385da82a91 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/Fruit.cs @@ -207,6 +207,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs index ed5e1e35c028..361da9371288 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/FruitReq.cs @@ -181,6 +181,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index ca6ca27187dd..c96886067b6b 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -253,7 +253,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs index 4a46f52ead3a..df1341c55fed 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/OneOfString.cs @@ -149,6 +149,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index d3e959b95a67..114391721fd3 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -231,6 +231,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/Fruit.cs b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/Fruit.cs index ba5d85932b34..453be949b65f 100644 --- a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/Fruit.cs +++ b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/Fruit.cs @@ -204,6 +204,17 @@ public override Fruit Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert public override void Write(Utf8JsonWriter writer, Fruit fruit, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruit.Apple != null) + { + AppleJsonConverter appleJsonConverter = (AppleJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Apple.GetType())); + appleJsonConverter.WriteProperties(writer, fruit.Apple, jsonSerializerOptions); + } + + if (fruit.Banana != null) + { + BananaJsonConverter bananaJsonConverter = (BananaJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruit.Banana.GetType())); + bananaJsonConverter.WriteProperties(writer, fruit.Banana, jsonSerializerOptions); + } WriteProperties(writer, fruit, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs index 440fbefb11ac..ac498f51caf9 100644 --- a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs +++ b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/FruitReq.cs @@ -178,6 +178,17 @@ public override FruitReq Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv public override void Write(Utf8JsonWriter writer, FruitReq fruitReq, JsonSerializerOptions jsonSerializerOptions) { writer.WriteStartObject(); + if (fruitReq.AppleReq != null) + { + AppleReqJsonConverter appleReqJsonConverter = (AppleReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.AppleReq.GetType())); + appleReqJsonConverter.WriteProperties(writer, fruitReq.AppleReq, jsonSerializerOptions); + } + + if (fruitReq.BananaReq != null) + { + BananaReqJsonConverter bananaReqJsonConverter = (BananaReqJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(fruitReq.BananaReq.GetType())); + bananaReqJsonConverter.WriteProperties(writer, fruitReq.BananaReq, jsonSerializerOptions); + } WriteProperties(writer, fruitReq, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs index 88d0a9a352de..270d653642cd 100644 --- a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs +++ b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/MixedOneOfContent.cs @@ -250,7 +250,36 @@ public override MixedOneOfContent Read(ref Utf8JsonReader utf8JsonReader, Type t /// public override void Write(Utf8JsonWriter writer, MixedOneOfContent mixedOneOfContent, JsonSerializerOptions jsonSerializerOptions) { + if (mixedOneOfContent.String != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.String, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Bool != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Bool, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Int != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Int, jsonSerializerOptions); + return; + } + + if (mixedOneOfContent.Decimal != null) + { + JsonSerializer.Serialize(writer, mixedOneOfContent.Decimal, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); + if (mixedOneOfContent.MixedSubId != null) + { + MixedSubIdJsonConverter mixedSubIdJsonConverter = (MixedSubIdJsonConverter) jsonSerializerOptions.Converters.First(c => c.CanConvert(mixedOneOfContent.MixedSubId.GetType())); + mixedSubIdJsonConverter.WriteProperties(writer, mixedOneOfContent.MixedSubId, jsonSerializerOptions); + } WriteProperties(writer, mixedOneOfContent, jsonSerializerOptions); writer.WriteEndObject(); diff --git a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs index af0ceaa278b0..b5b0a324b1eb 100644 --- a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs +++ b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/OneOfString.cs @@ -146,6 +146,12 @@ public override OneOfString Read(ref Utf8JsonReader utf8JsonReader, Type typeToC /// public override void Write(Utf8JsonWriter writer, OneOfString oneOfString, JsonSerializerOptions jsonSerializerOptions) { + if (oneOfString.String != null) + { + JsonSerializer.Serialize(writer, oneOfString.String, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, oneOfString, jsonSerializerOptions); diff --git a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs index befe6e02ec3a..c7ef5eda6387 100644 --- a/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs +++ b/samples/client/petstore/csharp/generichost/standard2.0/Petstore/src/Org.OpenAPITools/Model/PolymorphicProperty.cs @@ -228,6 +228,30 @@ public override PolymorphicProperty Read(ref Utf8JsonReader utf8JsonReader, Type /// public override void Write(Utf8JsonWriter writer, PolymorphicProperty polymorphicProperty, JsonSerializerOptions jsonSerializerOptions) { + if (polymorphicProperty.Bool != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Bool, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.String != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.String, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.Object != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.Object, jsonSerializerOptions); + return; + } + + if (polymorphicProperty.List != null) + { + JsonSerializer.Serialize(writer, polymorphicProperty.List, jsonSerializerOptions); + return; + } + writer.WriteStartObject(); WriteProperties(writer, polymorphicProperty, jsonSerializerOptions);