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
{