Skip to content

Commit 78b3384

Browse files
committed
fix: Fixed issue where file parameter object is incorrectly JSON serialised
1 parent 44a20ed commit 78b3384

1 file changed

Lines changed: 56 additions & 6 deletions

File tree

  • modules/openapi-generator/src/main/resources/csharp/libraries/generichost

modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -559,19 +559,69 @@ namespace {{packageName}}.{{apiPackage}}
559559
{{/formParams}}
560560
{{#bodyParam}}
561561
{{#required}}
562-
httpRequestMessageLocalVar.Content = ({{paramName}}{{^required}}.Value{{/required}} as object) is System.IO.Stream stream
563-
? httpRequestMessageLocalVar.Content = new StreamContent(stream)
564-
: httpRequestMessageLocalVar.Content = new StringContent(JsonSerializer.Serialize({{paramName}}{{^required}}.Value{{/required}}, _jsonSerializerOptions));
562+
if (({{paramName}}{{^required}}.Value{{/required}} as object) is System.IO.Stream stream)
563+
{
564+
httpRequestMessageLocalVar.Content = new StreamContent(stream);
565+
}
566+
{{#isFile}}
567+
else if (({{paramName}}{{^required}}.Value{{/required}} as object) is {{packageName}}.{{clientPackage}}.FileParameter fileParameterLocalVar)
568+
{
569+
httpRequestMessageLocalVar.Content = new StreamContent(fileParameterLocalVar.Content);
570+
}
571+
{{/isFile}}
572+
else
573+
{
574+
httpRequestMessageLocalVar.Content = new StringContent(JsonSerializer.Serialize({{paramName}}{{^required}}.Value{{/required}}, _jsonSerializerOptions));
575+
}
565576
{{/required}}
566577
{{^required}}
567578
if ({{paramName}}.IsSet)
568-
httpRequestMessageLocalVar.Content = ({{paramName}}{{^required}}.Value{{/required}} as object) is System.IO.Stream stream
569-
? httpRequestMessageLocalVar.Content = new StreamContent(stream)
570-
: httpRequestMessageLocalVar.Content = new StringContent(JsonSerializer.Serialize({{paramName}}{{^required}}.Value{{/required}}, _jsonSerializerOptions));
579+
{
580+
if (({{paramName}}{{^required}}.Value{{/required}} as object) is System.IO.Stream stream)
581+
{
582+
httpRequestMessageLocalVar.Content = new StreamContent(stream);
583+
}
584+
{{#isFile}}
585+
else if (({{paramName}}{{^required}}.Value{{/required}} as object) is {{packageName}}.{{clientPackage}}.FileParameter fileParameterLocalVar)
586+
{
587+
httpRequestMessageLocalVar.Content = new StreamContent(fileParameterLocalVar.Content);
588+
}
589+
{{/isFile}}
590+
else
591+
{
592+
httpRequestMessageLocalVar.Content = new StringContent(JsonSerializer.Serialize({{paramName}}{{^required}}.Value{{/required}}, _jsonSerializerOptions));
593+
}
594+
}
571595
{{/required}}
572596

573597
{{/bodyParam}}
574598

599+
{{#constantParams}}
600+
{{#isHeaderParam}}
601+
// Set client side default value of Header Param "{{baseName}}".
602+
if (_contentHeaders.Contains("{{baseName}}".ToLowerInvariant()))
603+
{
604+
httpRequestMessageLocalVar.Content.Headers.Add("{{baseName}}", ClientUtils.ParameterToString({{#_enum}}"{{{.}}}"{{/_enum}})); // Constant header parameter
605+
}
606+
else
607+
{
608+
httpRequestMessageLocalVar.Headers.Add("{{baseName}}", ClientUtils.ParameterToString({{#_enum}}"{{{.}}}"{{/_enum}})); // Constant header parameter
609+
}
610+
611+
{{/isHeaderParam}}
612+
{{/constantParams}}
613+
{{#headerParams}}
614+
{{#required}}
615+
// Set client side default value of Header Param "{{baseName}}".
616+
if (_contentHeaders.Contains("{{baseName}}".ToLowerInvariant()))
617+
{
618+
httpRequestMessageLocalVar.Content.Headers.Add("{{baseName}}", ClientUtils.ParameterToString({{paramName}}));
619+
}
620+
else
621+
{
622+
httpRequestMessageLocalVar.Headers.Add("{{baseName}}", ClientUtils.ParameterToString({{paramName}}));
623+
}
624+
575625
{{/required}}
576626
{{^required}}
577627
if ({{paramName}}.IsSet)

0 commit comments

Comments
 (0)