diff --git a/modules/swagger-codegen/src/main/resources/csharp/api.mustache b/modules/swagger-codegen/src/main/resources/csharp/api.mustache index 1ae2921849d..084caf97b9b 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api.mustache @@ -40,7 +40,7 @@ namespace {{package}} { /// public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { // create path and map variables - var path = "{{path}}".Replace("{format}","json"){{#pathParams}}.Replace("{" + "{{baseName}}" + "}", apiInvoker.escapeString({{{paramName}}}.ToString())){{/pathParams}}; + var path = "{{path}}".Replace("{format}","json"){{#pathParams}}.Replace("{" + "{{baseName}}" + "}", apiInvoker.ParameterToString({{{paramName}}})){{/pathParams}}; // query params var queryParams = new Dictionary(); @@ -55,20 +55,18 @@ namespace {{package}} { {{/requiredParamCount}} {{#queryParams}}if ({{paramName}} != null){ - string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); - queryParams.Add("{{baseName}}", paramStr); + queryParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}})); } {{/queryParams}} - {{#headerParams}}headerParams.Add("{{baseName}}", {{paramName}}); + {{#headerParams}}headerParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}})); {{/headerParams}} {{#formParams}}if ({{paramName}} != null){ if({{paramName}} is byte[]) { formParams.Add("{{baseName}}", {{paramName}}); } else { - string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); - formParams.Add("{{baseName}}", paramStr); + formParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}})); } } {{/formParams}} diff --git a/modules/swagger-codegen/src/main/resources/csharp/apiInvoker.mustache b/modules/swagger-codegen/src/main/resources/csharp/apiInvoker.mustache index f7c76ee2c56..4e7f1b6997b 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/apiInvoker.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/apiInvoker.mustache @@ -15,14 +15,41 @@ return _instance; } + /// + /// Add default header + /// + /// Header field name + /// Header field value + /// public void addDefaultHeader(string key, string value) { defaultHeaderMap.Add(key, value); } + /// + /// escape string (url-encoded) + /// + /// String to be escaped + /// Escaped string public string escapeString(string str) { return str; } + /// + /// if parameter is DateTime, output in ISO8601 format, otherwise just return the string + /// + /// The parameter (header, path, query, form) + /// Formatted string + public string ParameterToString(object obj) + { + return (obj is DateTime) ? ((DateTime)obj).ToString ("u") : Convert.ToString (obj); + } + + /// + /// Deserialize the JSON string into a proper object + /// + /// JSON string + /// Object type + /// Object representation of the JSON string public static object deserialize(string json, Type type) { try { @@ -99,6 +126,7 @@ case "GET": break; case "POST": + case "PATCH": case "PUT": case "DELETE": using (Stream requestStream = client.GetRequestStream()) diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs index 36bb469686a..3750f302faa 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs @@ -144,8 +144,7 @@ namespace io.swagger.Api { if (Status != null){ - string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); - queryParams.Add("status", paramStr); + queryParams.Add("status", apiInvoker.ParameterToString(Status)); } @@ -201,8 +200,7 @@ namespace io.swagger.Api { if (Tags != null){ - string paramStr = (Tags is DateTime) ? ((DateTime)(object)Tags).ToString("u") : Convert.ToString(Tags); - queryParams.Add("tags", paramStr); + queryParams.Add("tags", apiInvoker.ParameterToString(Tags)); } @@ -248,7 +246,7 @@ namespace io.swagger.Api { /// public Pet getPetById (long? PetId) { // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); + var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.ParameterToString(PetId)); // query params var queryParams = new Dictionary(); @@ -303,7 +301,7 @@ namespace io.swagger.Api { /// public void updatePetWithForm (string PetId, string Name, string Status) { // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); + var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.ParameterToString(PetId)); // query params var queryParams = new Dictionary(); @@ -320,16 +318,14 @@ namespace io.swagger.Api { if(Name is byte[]) { formParams.Add("name", Name); } else { - string paramStr = (Name is DateTime) ? ((DateTime)(object)Name).ToString("u") : Convert.ToString(Name); - formParams.Add("name", paramStr); + formParams.Add("name", apiInvoker.ParameterToString(Name)); } } if (Status != null){ if(Status is byte[]) { formParams.Add("status", Status); } else { - string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); - formParams.Add("status", paramStr); + formParams.Add("status", apiInvoker.ParameterToString(Status)); } } @@ -368,7 +364,7 @@ namespace io.swagger.Api { /// public void deletePet (string ApiKey, long? PetId) { // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); + var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.ParameterToString(PetId)); // query params var queryParams = new Dictionary(); @@ -379,7 +375,7 @@ namespace io.swagger.Api { - headerParams.Add("api_key", ApiKey); + headerParams.Add("api_key", apiInvoker.ParameterToString(ApiKey)); @@ -419,7 +415,7 @@ namespace io.swagger.Api { /// public void uploadFile (long? PetId, string AdditionalMetadata, byte[] File) { // create path and map variables - var path = "/pet/{petId}/uploadImage".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); + var path = "/pet/{petId}/uploadImage".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.ParameterToString(PetId)); // query params var queryParams = new Dictionary(); @@ -436,16 +432,14 @@ namespace io.swagger.Api { if(AdditionalMetadata is byte[]) { formParams.Add("additionalMetadata", AdditionalMetadata); } else { - string paramStr = (AdditionalMetadata is DateTime) ? ((DateTime)(object)AdditionalMetadata).ToString("u") : Convert.ToString(AdditionalMetadata); - formParams.Add("additionalMetadata", paramStr); + formParams.Add("additionalMetadata", apiInvoker.ParameterToString(AdditionalMetadata)); } } if (File != null){ if(File is byte[]) { formParams.Add("file", File); } else { - string paramStr = (File is DateTime) ? ((DateTime)(object)File).ToString("u") : Convert.ToString(File); - formParams.Add("file", paramStr); + formParams.Add("file", apiInvoker.ParameterToString(File)); } } diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs index 04c5ed0dc90..6ab79f87976 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs @@ -143,7 +143,7 @@ namespace io.swagger.Api { /// public Order getOrderById (string OrderId) { // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(OrderId.ToString())); + var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.ParameterToString(OrderId)); // query params var queryParams = new Dictionary(); @@ -196,7 +196,7 @@ namespace io.swagger.Api { /// public void deleteOrder (string OrderId) { // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(OrderId.ToString())); + var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.ParameterToString(OrderId)); // query params var queryParams = new Dictionary(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs index 4f13598da25..c262cbd38cb 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs @@ -193,12 +193,10 @@ namespace io.swagger.Api { if (Username != null){ - string paramStr = (Username is DateTime) ? ((DateTime)(object)Username).ToString("u") : Convert.ToString(Username); - queryParams.Add("username", paramStr); + queryParams.Add("username", apiInvoker.ParameterToString(Username)); } if (Password != null){ - string paramStr = (Password is DateTime) ? ((DateTime)(object)Password).ToString("u") : Convert.ToString(Password); - queryParams.Add("password", paramStr); + queryParams.Add("password", apiInvoker.ParameterToString(Password)); } @@ -291,7 +289,7 @@ namespace io.swagger.Api { /// public User getUserByName (string Username) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.ParameterToString(Username)); // query params var queryParams = new Dictionary(); @@ -345,7 +343,7 @@ namespace io.swagger.Api { /// public void updateUser (string Username, User Body) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.ParameterToString(Username)); // query params var queryParams = new Dictionary(); @@ -393,7 +391,7 @@ namespace io.swagger.Api { /// public void deleteUser (string Username) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.ParameterToString(Username)); // query params var queryParams = new Dictionary(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/ApiInvoker.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/ApiInvoker.cs index 736b51b81f9..c14d1af7d6c 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/ApiInvoker.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/ApiInvoker.cs @@ -23,6 +23,16 @@ return str; } + /// + /// if parameter is DateTime, output in ISO8601 format, otherwise just return the string + /// + /// The parameter (header, path, query, form) + /// + public string ParameterToString(object obj) + { + return (obj is DateTime) ? ((DateTime)obj).ToString ("u") : Convert.ToString (obj); + } + public static object deserialize(string json, Type type) { try {