Merge pull request #611 from wing328/csharp_date_iso8601

Updated CSharp client to support ISO8601 format
This commit is contained in:
Tony Tam 2015-04-09 07:26:12 -06:00
commit a1e62ea4b1
6 changed files with 60 additions and 32 deletions

View File

@ -40,7 +40,7 @@ namespace {{package}} {
/// <returns></returns> /// <returns></returns>
public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -55,20 +55,18 @@ namespace {{package}} {
{{/requiredParamCount}} {{/requiredParamCount}}
{{#queryParams}}if ({{paramName}} != null){ {{#queryParams}}if ({{paramName}} != null){
string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); queryParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}}));
queryParams.Add("{{baseName}}", paramStr);
} }
{{/queryParams}} {{/queryParams}}
{{#headerParams}}headerParams.Add("{{baseName}}", {{paramName}}); {{#headerParams}}headerParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}}));
{{/headerParams}} {{/headerParams}}
{{#formParams}}if ({{paramName}} != null){ {{#formParams}}if ({{paramName}} != null){
if({{paramName}} is byte[]) { if({{paramName}} is byte[]) {
formParams.Add("{{baseName}}", {{paramName}}); formParams.Add("{{baseName}}", {{paramName}});
} else { } else {
string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); formParams.Add("{{baseName}}", apiInvoker.ParameterToString({{paramName}}));
formParams.Add("{{baseName}}", paramStr);
} }
} }
{{/formParams}} {{/formParams}}

View File

@ -15,14 +15,41 @@
return _instance; return _instance;
} }
/// <summary>
/// Add default header
/// </summary>
/// <param name="key"> Header field name
/// <param name="value"> Header field value
/// <returns></returns>
public void addDefaultHeader(string key, string value) { public void addDefaultHeader(string key, string value) {
defaultHeaderMap.Add(key, value); defaultHeaderMap.Add(key, value);
} }
/// <summary>
/// escape string (url-encoded)
/// </summary>
/// <param name="str"> String to be escaped
/// <returns>Escaped string</returns>
public string escapeString(string str) { public string escapeString(string str) {
return str; return str;
} }
/// <summary>
/// if parameter is DateTime, output in ISO8601 format, otherwise just return the string
/// </summary>
/// <param name="obj"> The parameter (header, path, query, form)
/// <returns>Formatted string</returns>
public string ParameterToString(object obj)
{
return (obj is DateTime) ? ((DateTime)obj).ToString ("u") : Convert.ToString (obj);
}
/// <summary>
/// Deserialize the JSON string into a proper object
/// </summary>
/// <param name="json"> JSON string
/// <param name="type"> Object type
/// <returns>Object representation of the JSON string</returns>
public static object deserialize(string json, Type type) { public static object deserialize(string json, Type type) {
try try
{ {
@ -99,6 +126,7 @@
case "GET": case "GET":
break; break;
case "POST": case "POST":
case "PATCH":
case "PUT": case "PUT":
case "DELETE": case "DELETE":
using (Stream requestStream = client.GetRequestStream()) using (Stream requestStream = client.GetRequestStream())

View File

@ -144,8 +144,7 @@ namespace io.swagger.Api {
if (Status != null){ if (Status != null){
string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); queryParams.Add("status", apiInvoker.ParameterToString(Status));
queryParams.Add("status", paramStr);
} }
@ -201,8 +200,7 @@ namespace io.swagger.Api {
if (Tags != null){ if (Tags != null){
string paramStr = (Tags is DateTime) ? ((DateTime)(object)Tags).ToString("u") : Convert.ToString(Tags); queryParams.Add("tags", apiInvoker.ParameterToString(Tags));
queryParams.Add("tags", paramStr);
} }
@ -248,7 +246,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public Pet getPetById (long? PetId) { public Pet getPetById (long? PetId) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -303,7 +301,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public void updatePetWithForm (string PetId, string Name, string Status) { public void updatePetWithForm (string PetId, string Name, string Status) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -320,16 +318,14 @@ namespace io.swagger.Api {
if(Name is byte[]) { if(Name is byte[]) {
formParams.Add("name", Name); formParams.Add("name", Name);
} else { } else {
string paramStr = (Name is DateTime) ? ((DateTime)(object)Name).ToString("u") : Convert.ToString(Name); formParams.Add("name", apiInvoker.ParameterToString(Name));
formParams.Add("name", paramStr);
} }
} }
if (Status != null){ if (Status != null){
if(Status is byte[]) { if(Status is byte[]) {
formParams.Add("status", Status); formParams.Add("status", Status);
} else { } else {
string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); formParams.Add("status", apiInvoker.ParameterToString(Status));
formParams.Add("status", paramStr);
} }
} }
@ -368,7 +364,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public void deletePet (string ApiKey, long? PetId) { public void deletePet (string ApiKey, long? PetId) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -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 {
/// <returns></returns> /// <returns></returns>
public void uploadFile (long? PetId, string AdditionalMetadata, byte[] File) { public void uploadFile (long? PetId, string AdditionalMetadata, byte[] File) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -436,16 +432,14 @@ namespace io.swagger.Api {
if(AdditionalMetadata is byte[]) { if(AdditionalMetadata is byte[]) {
formParams.Add("additionalMetadata", AdditionalMetadata); formParams.Add("additionalMetadata", AdditionalMetadata);
} else { } else {
string paramStr = (AdditionalMetadata is DateTime) ? ((DateTime)(object)AdditionalMetadata).ToString("u") : Convert.ToString(AdditionalMetadata); formParams.Add("additionalMetadata", apiInvoker.ParameterToString(AdditionalMetadata));
formParams.Add("additionalMetadata", paramStr);
} }
} }
if (File != null){ if (File != null){
if(File is byte[]) { if(File is byte[]) {
formParams.Add("file", File); formParams.Add("file", File);
} else { } else {
string paramStr = (File is DateTime) ? ((DateTime)(object)File).ToString("u") : Convert.ToString(File); formParams.Add("file", apiInvoker.ParameterToString(File));
formParams.Add("file", paramStr);
} }
} }

View File

@ -143,7 +143,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public Order getOrderById (string OrderId) { public Order getOrderById (string OrderId) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -196,7 +196,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public void deleteOrder (string OrderId) { public void deleteOrder (string OrderId) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();

View File

@ -193,12 +193,10 @@ namespace io.swagger.Api {
if (Username != null){ if (Username != null){
string paramStr = (Username is DateTime) ? ((DateTime)(object)Username).ToString("u") : Convert.ToString(Username); queryParams.Add("username", apiInvoker.ParameterToString(Username));
queryParams.Add("username", paramStr);
} }
if (Password != null){ if (Password != null){
string paramStr = (Password is DateTime) ? ((DateTime)(object)Password).ToString("u") : Convert.ToString(Password); queryParams.Add("password", apiInvoker.ParameterToString(Password));
queryParams.Add("password", paramStr);
} }
@ -291,7 +289,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public User getUserByName (string Username) { public User getUserByName (string Username) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -345,7 +343,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public void updateUser (string Username, User Body) { public void updateUser (string Username, User Body) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();
@ -393,7 +391,7 @@ namespace io.swagger.Api {
/// <returns></returns> /// <returns></returns>
public void deleteUser (string Username) { public void deleteUser (string Username) {
// create path and map variables // 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 // query params
var queryParams = new Dictionary<String, String>(); var queryParams = new Dictionary<String, String>();

View File

@ -23,6 +23,16 @@
return str; return str;
} }
/// <summary>
/// if parameter is DateTime, output in ISO8601 format, otherwise just return the string
/// </summary>
/// <param name="obj"> The parameter (header, path, query, form)
/// <returns></returns>
public string ParameterToString(object obj)
{
return (obj is DateTime) ? ((DateTime)obj).ToString ("u") : Convert.ToString (obj);
}
public static object deserialize(string json, Type type) { public static object deserialize(string json, Type type) {
try try
{ {