diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java index 40ee5cf99bb..f892af70c6d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java @@ -355,12 +355,16 @@ public Map postProcessModels(Map objs) { Map mo = (Map) _mo; CodegenModel cm = (CodegenModel) mo.get("model"); for (CodegenProperty var : cm.vars) { + String paramName = toParamName(var.name); + // check to see if model name is same as the property name // which will result in compilation error // if found, prepend with _ to workaround the limitation if (var.name.equalsIgnoreCase(cm.name)) { var.name = "_" + var.name; + paramName = "_" + paramName; } + var.vendorExtensions.put("x-parameter-name", paramName); } } // process enum in models diff --git a/modules/swagger-codegen/src/main/resources/csharp/modelGeneric.mustache b/modules/swagger-codegen/src/main/resources/csharp/modelGeneric.mustache index 99e0b090143..b59c743b38f 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/modelGeneric.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/modelGeneric.mustache @@ -49,26 +49,26 @@ /// {{#vars}} {{^isReadOnly}} - /// {{#description}}{{description}}{{/description}}{{^description}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}. + /// {{#description}}{{description}}{{/description}}{{^description}}{{vendorExtensions.x-parameter-name}}{{/description}}{{#required}} (required){{/required}}{{#defaultValue}} (default to {{defaultValue}}){{/defaultValue}}. {{/isReadOnly}} {{/vars}} {{#hasOnlyReadOnly}} [JsonConstructorAttribute] {{/hasOnlyReadOnly}} - public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}{{#hasMore}}, {{/hasMore}}{{/parentVars}}){{/parent}} + public {{classname}}({{#readWriteVars}}{{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}} {{vendorExtensions.x-parameter-name}} = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}default({{{datatypeWithEnum}}}{{#isEnum}}{{^isContainer}}{{^required}}?{{/required}}{{/isContainer}}{{/isEnum}}){{/defaultValue}}{{^-last}}, {{/-last}}{{/readWriteVars}}){{#parent}} : base({{#parentVars}}{{vendorExtensions.x-parameter-name}}{{#hasMore}}, {{/hasMore}}{{/parentVars}}){{/parent}} { {{#vars}} {{^isInherited}} {{^isReadOnly}} {{#required}} - // to ensure "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" is required (not null) - if ({{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} == null) + // to ensure "{{vendorExtensions.x-parameter-name}}" is required (not null) + if ({{vendorExtensions.x-parameter-name}} == null) { - throw new InvalidDataException("{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} is a required property for {{classname}} and cannot be null"); + throw new InvalidDataException("{{vendorExtensions.x-parameter-name}} is a required property for {{classname}} and cannot be null"); } else { - this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + this.{{name}} = {{vendorExtensions.x-parameter-name}}; } {{/required}} {{/isReadOnly}} @@ -78,18 +78,18 @@ {{^isInherited}} {{^isReadOnly}} {{^required}} - {{#defaultValue}}// use default value if no "{{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}" provided - if ({{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}} == null) + {{#defaultValue}}// use default value if no "{{vendorExtensions.x-parameter-name}}" provided + if ({{vendorExtensions.x-parameter-name}} == null) { this.{{name}} = {{{defaultValue}}}; } else { - this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; + this.{{name}} = {{vendorExtensions.x-parameter-name}}; } {{/defaultValue}} {{^defaultValue}} -this.{{name}} = {{#lambda.camelcase_param}}{{name}}{{/lambda.camelcase_param}}; +this.{{name}} = {{vendorExtensions.x-parameter-name}}; {{/defaultValue}} {{/required}} {{/isReadOnly}}