Skip to content

Commit 112639e

Browse files
author
Olivier Leonard
committed
Fix csharp generation
1 parent 0230f9d commit 112639e

7 files changed

Lines changed: 23 additions & 17 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,12 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
634634
postProcessEmitDefaultValue(property.vendorExtensions);
635635

636636
super.postProcessModelProperty(model, property);
637+
638+
if (!GENERICHOST.equals(getLibrary())) {
639+
if (property.isNullable && (nullReferenceTypesFlag || (!property.isContainer && (getNullableTypes().contains(property.dataType) || property.isEnum)))) {
640+
property.vendorExtensions.put("x-csharp-use-nullable-operator", true);
641+
}
642+
}
637643
}
638644

639645
@Override
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#isNullable}}{{#vendorExtensions.x-nullable-type}}?{{/vendorExtensions.x-nullable-type}}{{/isNullable}}
1+
{{#vendorExtensions.x-csharp-use-nullable-operator}}?{{/vendorExtensions.x-csharp-use-nullable-operator}}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#isNullable}}{{#vendorExtensions.x-nullable-type}}?{{/vendorExtensions.x-nullable-type}}{{/isNullable}}
1+
{{#vendorExtensions.x-csharp-use-nullable-operator}}?{{/vendorExtensions.x-csharp-use-nullable-operator}}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,12 @@ namespace {{packageName}}.{{apiPackage}}
264264
{
265265
{{#allParams}}
266266
{{^nullable}}
267-
{{^vendorExtensions.x-csharp-value-type}}
267+
{{^vendorExtensions.x-is-value-type}}
268268
// verify the required parameter '{{paramName}}' is set
269269
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
270270
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
271271

272-
{{/vendorExtensions.x-csharp-value-type}}
272+
{{/vendorExtensions.x-is-value-type}}
273273
{{/nullable}}
274274
{{/allParams}}
275275
{{packageName}}.Client.RequestOptions localVarRequestOptions = new {{packageName}}.Client.RequestOptions();
@@ -533,12 +533,12 @@ namespace {{packageName}}.{{apiPackage}}
533533
{
534534
{{#allParams}}
535535
{{^nullable}}
536-
{{^vendorExtensions.x-csharp-value-type}}
536+
{{^vendorExtensions.x-is-value-type}}
537537
// verify the required parameter '{{paramName}}' is set
538538
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
539539
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
540540

541-
{{/vendorExtensions.x-csharp-value-type}}
541+
{{/vendorExtensions.x-is-value-type}}
542542
{{/nullable}}
543543
{{/allParams}}
544544

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -354,12 +354,12 @@ namespace {{packageName}}.{{apiPackage}}
354354
{
355355
{{#allParams}}
356356
{{^nullable}}
357-
{{^vendorExtensions.x-csharp-value-type}}
357+
{{^vendorExtensions.x-is-value-type}}
358358
// verify the required parameter '{{paramName}}' is set
359359
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
360360
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
361361

362-
{{/vendorExtensions.x-csharp-value-type}}
362+
{{/vendorExtensions.x-is-value-type}}
363363
{{/nullable}}
364364
{{/allParams}}
365365
{{packageName}}.Client.RequestOptions localVarRequestOptions = new {{packageName}}.Client.RequestOptions();
@@ -574,12 +574,12 @@ namespace {{packageName}}.{{apiPackage}}
574574
{
575575
{{#allParams}}
576576
{{^nullable}}
577-
{{^vendorExtensions.x-csharp-value-type}}
577+
{{^vendorExtensions.x-is-value-type}}
578578
// verify the required parameter '{{paramName}}' is set
579579
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
580580
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
581581

582-
{{/vendorExtensions.x-csharp-value-type}}
582+
{{/vendorExtensions.x-is-value-type}}
583583
{{/nullable}}
584584
{{/allParams}}
585585

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -280,12 +280,12 @@ namespace {{packageName}}.{{apiPackage}}
280280
{
281281
{{#allParams}}
282282
{{^nullable}}
283-
{{^vendorExtensions.x-csharp-value-type}}
283+
{{^vendorExtensions.x-is-value-type}}
284284
// verify the required parameter '{{paramName}}' is set
285285
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
286286
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
287287

288-
{{/vendorExtensions.x-csharp-value-type}}
288+
{{/vendorExtensions.x-is-value-type}}
289289
{{/nullable}}
290290
{{/allParams}}
291291
{{packageName}}.Client.RequestOptions localVarRequestOptions = new {{packageName}}.Client.RequestOptions();
@@ -512,12 +512,12 @@ namespace {{packageName}}.{{apiPackage}}
512512
{
513513
{{#allParams}}
514514
{{^nullable}}
515-
{{^vendorExtensions.x-csharp-value-type}}
515+
{{^vendorExtensions.x-is-value-type}}
516516
// verify the required parameter '{{paramName}}' is set
517517
if ({{^required}}{{paramName}}.IsSet && {{/required}}{{paramName}}{{^required}}.Value{{/required}} == null)
518518
throw new {{packageName}}.Client.ApiException(400, "Null non nullable parameter '{{paramName}}' when calling {{classname}}->{{operationId}}");
519519

520-
{{/vendorExtensions.x-csharp-value-type}}
520+
{{/vendorExtensions.x-is-value-type}}
521521
{{/nullable}}
522522
{{/allParams}}
523523

modules/openapi-generator/src/main/resources/csharp/modelGeneric.mustache

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,20 +136,20 @@
136136
{{#hasOnlyReadOnly}}
137137
[JsonConstructorAttribute]
138138
{{/hasOnlyReadOnly}}
139-
public {{classname}}({{#readWriteVars}}{{^required}}Option<{{/required}}{{{datatypeWithEnum}}}{{>NullConditionalParameter}}{{^required}}>{{/required}} {{>CamelCaseSanitizedParamName}} = {{#required}}{{#defaultValue}}{{^isDateTime}}{{#isString}}{{^isEnum}}@{{/isEnum}}{{/isString}}{{{defaultValue}}}{{/isDateTime}}{{#isDateTime}}default({{{datatypeWithEnum}}}){{/isDateTime}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}){{/defaultValue}}{{/required}}{{^required}}default(Option<{{{datatypeWithEnum}}}{{>NullConditionalParameter}}>){{/required}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{>CamelCaseSanitizedParamName}}{{^-last}}, {{/-last}}{{/parentVars}}){{/parent}}
139+
public {{classname}}({{#readWriteVars}}{{^required}}Option<{{/required}}{{{datatypeWithEnum}}}{{>NullConditionalParameter}}{{^required}}>{{/required}} {{>CamelCaseSanitizedParamName}} = {{#required}}{{#defaultValue}}{{^isDateTime}}{{#isString}}{{^isEnum}}@{{/isEnum}}{{/isString}}{{{defaultValue}}}{{/isDateTime}}{{#isDateTime}}default({{{datatypeWithEnum}}}{{>NullConditionalParameter}}){{/isDateTime}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{>NullConditionalParameter}}){{/defaultValue}}{{/required}}{{^required}}default(Option<{{{datatypeWithEnum}}}{{>NullConditionalParameter}}>){{/required}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{>CamelCaseSanitizedParamName}}{{^-last}}, {{/-last}}{{/parentVars}}){{/parent}}
140140
{
141141
{{! Push all sanity tests on top }}
142142
{{#vars}}
143143
{{^isInherited}}
144144
{{^isReadOnly}}
145145
{{^isNullable}}
146-
{{^vendorExtensions.x-csharp-value-type}}
146+
{{^vendorExtensions.x-is-value-type}}
147147
// to ensure "{{>CamelCaseSanitizedParamName}}" (not nullable) is not null
148148
if ({{^required}}{{>CamelCaseSanitizedParamName}}.IsSet && {{/required}}{{>CamelCaseSanitizedParamName}}{{^required}}.Value{{/required}} == null)
149149
{
150150
throw new ArgumentNullException("{{>CamelCaseSanitizedParamName}} isn't a nullable property for {{classname}} and cannot be null");
151151
}
152-
{{/vendorExtensions.x-csharp-value-type}}
152+
{{/vendorExtensions.x-is-value-type}}
153153
{{/isNullable}}
154154
{{/isReadOnly}}
155155
{{/isInherited}}

0 commit comments

Comments
 (0)