From b1b0e28f591d398597746fab470e4438c5ba1c43 Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 6 Jul 2015 23:06:28 +0800 Subject: [PATCH] update c# style --- .../main/resources/csharp/ApiClient.mustache | 265 +++++++++--------- .../resources/csharp/Configuration.mustache | 52 ++-- .../src/main/resources/csharp/api.mustache | 44 +-- .../src/main/csharp/IO/Swagger/Api/PetApi.cs | 156 ++++++----- .../main/csharp/IO/Swagger/Api/StoreApi.cs | 92 +++--- .../src/main/csharp/IO/Swagger/Api/UserApi.cs | 156 ++++++----- .../csharp/IO/Swagger/Client/ApiClient.cs | 265 +++++++++--------- .../csharp/IO/Swagger/Client/Configuration.cs | 52 ++-- .../SwaggerClientTest.csproj | 1 + .../SwaggerClientTest.userprefs | 2 +- .../bin/Debug/SwaggerClientTest.dll | Bin 56320 -> 56320 bytes .../bin/Debug/SwaggerClientTest.dll.mdb | Bin 17288 -> 16324 bytes .../obj/Debug/SwaggerClientTest.dll | Bin 56320 -> 56320 bytes .../obj/Debug/SwaggerClientTest.dll.mdb | Bin 17288 -> 16324 bytes 14 files changed, 562 insertions(+), 523 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache index 905931a2991..4206b3434e4 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/ApiClient.mustache @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Text.RegularExpressions; using System.IO; +using System.Web; using System.Linq; using System.Net; using System.Text; @@ -10,222 +12,222 @@ using Newtonsoft.Json; using RestSharp; using RestSharp.Extensions; -namespace {{packageName}}.Client { +namespace {{packageName}}.Client +{ /// - /// API client is mainly responible for making the HTTP call to the API backend + /// API client is mainly responible for making the HTTP call to the API backend. /// - public class ApiClient { + public class ApiClient + { + private readonly Dictionary _defaultHeaderMap = new Dictionary(); /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The base path. - public ApiClient(String basePath="{{basePath}}") { - this.BasePath = basePath; - this.RestClient = new RestClient(this.BasePath); + public ApiClient(String basePath="{{basePath}}") + { + BasePath = basePath; + RestClient = new RestClient(BasePath); } /// /// Gets or sets the base path. /// - /// The base path. public string BasePath { get; set; } /// - /// Gets or sets the RestClient + /// Gets or sets the RestClient. /// - /// The RestClient. public RestClient RestClient { get; set; } - private Dictionary DefaultHeaderMap = new Dictionary(); + /// + /// Gets the default header. + /// + public Dictionary DefaultHeader + { + get { return _defaultHeaderMap; } + } /// - /// Make the HTTP request (Sync) + /// Makes the HTTP request (Sync). /// - /// URL path - /// HTTP method - /// Query parameters - /// HTTP body (POST request) - /// Header parameters - /// Form parameters - /// File parameters - /// Authentication settings + /// URL path. + /// HTTP method. + /// Query parameters. + /// HTTP body (POST request). + /// Header parameters. + /// Form parameters. + /// File parameters. + /// Authentication settings. /// Object public Object CallApi(String path, RestSharp.Method method, Dictionary queryParams, String postBody, Dictionary headerParams, Dictionary formParams, - Dictionary fileParams, String[] authSettings) { + Dictionary fileParams, String[] authSettings) + { var request = new RestRequest(path, method); UpdateParamsForAuth(queryParams, headerParams, authSettings); // add default header, if any - foreach(KeyValuePair defaultHeader in this.DefaultHeaderMap) + foreach(var defaultHeader in _defaultHeaderMap) request.AddHeader(defaultHeader.Key, defaultHeader.Value); // add header parameter, if any - foreach(KeyValuePair param in headerParams) + foreach(var param in headerParams) request.AddHeader(param.Key, param.Value); // add query parameter, if any - foreach(KeyValuePair param in queryParams) + foreach(var param in queryParams) request.AddQueryParameter(param.Key, param.Value); // add form parameter, if any - foreach(KeyValuePair param in formParams) + foreach(var param in formParams) request.AddParameter(param.Key, param.Value); // add file parameter, if any - foreach(KeyValuePair param in fileParams) + foreach(var param in fileParams) request.AddFile(param.Value.Name, param.Value.Writer, param.Value.FileName, param.Value.ContentType); - - if (postBody != null) { - request.AddParameter("application/json", postBody, ParameterType.RequestBody); // http body (model) parameter - } + if (postBody != null) // http body (model) parameter + request.AddParameter("application/json", postBody, ParameterType.RequestBody); return (Object)RestClient.Execute(request); } /// - /// Make the HTTP request (Async) + /// Makes the asynchronous HTTP request. /// - /// URL path - /// HTTP method - /// Query parameters - /// HTTP body (POST request) - /// Header parameters - /// Form parameters - /// File parameters - /// Authentication settings - /// Task + /// URL path. + /// HTTP method. + /// Query parameters. + /// HTTP body (POST request). + /// Header parameters. + /// Form parameters. + /// File parameters. + /// Authentication settings. + /// The Task instance. public async Task CallApiAsync(String path, RestSharp.Method method, Dictionary queryParams, String postBody, - Dictionary headerParams, Dictionary formParams, Dictionary fileParams, String[] authSettings) { + Dictionary headerParams, Dictionary formParams, Dictionary fileParams, String[] authSettings) + { var request = new RestRequest(path, method); UpdateParamsForAuth(queryParams, headerParams, authSettings); // add default header, if any - foreach(KeyValuePair defaultHeader in this.DefaultHeaderMap) + foreach(var defaultHeader in _defaultHeaderMap) request.AddHeader(defaultHeader.Key, defaultHeader.Value); // add header parameter, if any - foreach(KeyValuePair param in headerParams) + foreach(var param in headerParams) request.AddHeader(param.Key, param.Value); // add query parameter, if any - foreach(KeyValuePair param in queryParams) + foreach(var param in queryParams) request.AddQueryParameter(param.Key, param.Value); // add form parameter, if any - foreach(KeyValuePair param in formParams) + foreach(var param in formParams) request.AddParameter(param.Key, param.Value); // add file parameter, if any - foreach(KeyValuePair param in fileParams) + foreach(var param in fileParams) request.AddFile(param.Value.Name, param.Value.Writer, param.Value.FileName, param.Value.ContentType); - - - if (postBody != null) { - request.AddParameter("application/json", postBody, ParameterType.RequestBody); // http body (model) parameter - } + + if (postBody != null) // http body (model) parameter + request.AddParameter("application/json", postBody, ParameterType.RequestBody); return (Object) await RestClient.ExecuteTaskAsync(request); - } /// - /// Add default header + /// Add default header. /// - /// Header field name - /// Header field value + /// Header field name. + /// Header field value. /// - public void AddDefaultHeader(string key, string value) { - DefaultHeaderMap.Add(key, value); + public void AddDefaultHeader(string key, string value) + { + _defaultHeaderMap.Add(key, value); } /// - /// Get default header + /// Escape string (url-encoded). /// - /// Dictionary of default header - public Dictionary GetDefaultHeader() { - return DefaultHeaderMap; + /// String to be escaped. + /// Escaped string. + public string EscapeString(string str) + { + return HttpUtility.UrlEncode(str); } /// - /// escape string (url-encoded) + /// Create FileParameter based on Stream. /// - /// String to be escaped - /// Escaped string - public string EscapeString(string str) { - return str; - } - - /// - /// Create FileParameter based on Stream - /// - /// parameter name - /// Input stream - /// FileParameter + /// Parameter name. + /// Input stream. + /// FileParameter. public FileParameter ParameterToFile(string name, Stream stream) { - if (stream is FileStream) { + if (stream is FileStream) return FileParameter.Create(name, stream.ReadAsBytes(), Path.GetFileName(((FileStream)stream).Name)); - } else { + else return FileParameter.Create(name, stream.ReadAsBytes(), "no_file_name_provided"); - } } /// - /// if parameter is DateTime, output in ISO8601 format - /// if parameter is a list of string, join the list with "," - /// otherwise just return the string + /// If parameter is DateTime, output in ISO8601 format. + /// If parameter is a list of string, join the list with ",". + /// Otherwise just return the string. /// - /// The parameter (header, path, query, form) - /// Formatted string + /// The parameter (header, path, query, form). + /// Formatted string. public string ParameterToString(object obj) { - if (obj is DateTime) { + if (obj is DateTime) return ((DateTime)obj).ToString ("u"); - } else if (obj is List) { + else if (obj is List) return String.Join(",", obj as List); - } else { + else return Convert.ToString (obj); - } } /// - /// Deserialize the JSON string into a proper object + /// Deserialize the JSON string into a proper object. /// - /// HTTP body (e.g. string, JSON) - /// Object type - /// Object representation of the JSON string - public object Deserialize(string content, Type type, IList headers=null) { - if (type == typeof(Object)) { // return an object + /// HTTP body (e.g. string, JSON). + /// Object type. + /// Object representation of the JSON string. + public object Deserialize(string content, Type type, IList headers=null) + { + if (type == typeof(Object)) // return an object + { return (Object)content; - } else if (type == typeof(Stream)) { + } else if (type == typeof(Stream)) + { String fileName, filePath; - if (String.IsNullOrEmpty (Configuration.TempFolderPath)) { + if (String.IsNullOrEmpty (Configuration.TempFolderPath)) filePath = System.IO.Path.GetTempPath (); - } else { + else filePath = Configuration.TempFolderPath; - } - + Regex regex = new Regex(@"Content-Disposition:.*filename=['""]?([^'""\s]+)['""]?$"); Match match = regex.Match(headers.ToString()); - if (match.Success) { - // replace first and last " or ', if found + if (match.Success) // replace first and last " or ', if found fileName = filePath + match.Value.Replace("\"", "").Replace("'",""); - } else { + else fileName = filePath + Guid.NewGuid().ToString(); - } + File.WriteAllText (fileName, content); return new FileStream(fileName, FileMode.Open); - } else if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) { // return a datetime object + } else if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object + { return DateTime.Parse(content, null, System.Globalization.DateTimeStyles.RoundtripKind); - } else if (type.Name == "String" || type.Name.StartsWith("System.Nullable")) { // return primitive + } else if (type.Name == "String" || type.Name.StartsWith("System.Nullable")) // return primitive type + { return ConvertType(content, type); } @@ -234,56 +236,61 @@ namespace {{packageName}}.Client { { return JsonConvert.DeserializeObject(content, type); } - catch (IOException e) { + catch (IOException e) + { throw new ApiException(500, e.Message); } } /// - /// Serialize an object into JSON string + /// Serialize an object into JSON string. /// - /// Object - /// JSON string - public string Serialize(object obj) { + /// Object. + /// JSON string. + public string Serialize(object obj) + { try { return obj != null ? JsonConvert.SerializeObject(obj) : null; } - catch (Exception e) { + catch (Exception e) + { throw new ApiException(500, e.Message); } } /// - /// Get the API key with prefix + /// Get the API key with prefix. /// - /// Object - /// API key with prefix + /// API key identifier (authentication scheme). + /// API key with prefix. public string GetApiKeyWithPrefix (string apiKeyIdentifier) { var apiKeyValue = ""; Configuration.ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); var apiKeyPrefix = ""; - if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) { + if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) return apiKeyPrefix + " " + apiKeyValue; - } else { + else return apiKeyValue; - } } /// - /// Update parameters based on authentication + /// Update parameters based on authentication. /// - /// Query parameters - /// Header parameters - /// Authentication settings - public void UpdateParamsForAuth(Dictionary queryParams, Dictionary headerParams, string[] authSettings) { + /// Query parameters. + /// Header parameters. + /// Authentication settings. + public void UpdateParamsForAuth(Dictionary queryParams, Dictionary headerParams, string[] authSettings) + { if (authSettings == null || authSettings.Length == 0) return; - foreach (string auth in authSettings) { + foreach (string auth in authSettings) + { // determine which one to use - switch(auth) { + switch(auth) + { {{#authMethods}} case "{{name}}": {{#isApiKey}}{{#isKeyInHeader}}headerParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInHeader}}{{#isKeyInQuery}}queryParams["{{keyParamName}}"] = GetApiKeyWithPrefix("{{keyParamName}}");{{/isKeyInQuery}}{{/isApiKey}}{{#isBasic}}headerParams["Authorization"] = "Basic " + Base64Encode(Configuration.Username + ":" + Configuration.Password);{{/isBasic}} @@ -295,24 +302,26 @@ namespace {{packageName}}.Client { break; } } - } /// - /// Encode string in base64 format + /// Encode string in base64 format. /// - /// String to be encoded - public static string Base64Encode(string text) { + /// String to be encoded. + /// Encoded string. + public static string Base64Encode(string text) + { var textByte = System.Text.Encoding.UTF8.GetBytes(text); return System.Convert.ToBase64String(textByte); } /// - /// Dynamically cast the object into target type + /// Dynamically cast the object into target type. /// Ref: http://stackoverflow.com/questions/4925718/c-dynamic-runtime-cast /// - /// Object to be casted + /// Object to be casted /// Target type + /// Casted object public static dynamic ConvertType(dynamic source, Type dest) { return Convert.ChangeType(source, dest); } diff --git a/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache b/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache index a6246c3e158..ce2f351b433 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/Configuration.mustache @@ -3,18 +3,20 @@ using System.Reflection; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Net; using System.Text; -namespace {{packageName}}.Client { +namespace {{packageName}}.Client +{ /// /// Represents a set of configuration settings /// - public class Configuration{ + public class Configuration + { /// - /// Version of the package + /// Version of the package. /// + /// Version of the package. public const string Version = "{{packageVersion}}"; /// @@ -24,25 +26,25 @@ namespace {{packageName}}.Client { public static ApiClient DefaultApiClient = new ApiClient(); /// - /// Gets or sets the username (HTTP basic authentication) + /// Gets or sets the username (HTTP basic authentication). /// /// The username. public static String Username { get; set; } /// - /// Gets or sets the password (HTTP basic authentication) + /// Gets or sets the password (HTTP basic authentication). /// /// The password. public static String Password { get; set; } /// - /// Gets or sets the API key based on the authentication name + /// Gets or sets the API key based on the authentication name. /// /// The API key. public static Dictionary ApiKey = new Dictionary(); /// - /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. /// /// The prefix of the API key. public static Dictionary ApiKeyPrefix = new Dictionary(); @@ -50,46 +52,46 @@ namespace {{packageName}}.Client { private static string _tempFolderPath = Path.GetTempPath(); /// - /// Gets or sets the temporary folder path to store the files downloaded from the server + /// Gets or sets the temporary folder path to store the files downloaded from the server. /// - /// Folder path - public static String TempFolderPath { - get { - return _tempFolderPath; - } + /// Folder path. + public static String TempFolderPath + { + get { return _tempFolderPath; } - set { - if (String.IsNullOrEmpty(value)) { + set + { + if (String.IsNullOrEmpty(value)) + { _tempFolderPath = value; return; } // create the directory if it does not exist - if (!Directory.Exists(value)) { + if (!Directory.Exists(value)) Directory.CreateDirectory(value); - } // check if the path contains directory separator at the end - if (value[value.Length - 1] == Path.DirectorySeparatorChar) { + if (value[value.Length - 1] == Path.DirectorySeparatorChar) _tempFolderPath = value; - } else { + else _tempFolderPath = value + Path.DirectorySeparatorChar; - } } } /// - /// Return a string contain essential information for debugging + /// Returns a string with essential information for debugging. /// - /// Folder path - public static String ToDebugReport() { + /// Debugging Report + public static String ToDebugReport() + { String report = "C# SDK ({{invokerPackage}}) Debug Report:\n"; report += " OS: " + Environment.OSVersion + "\n"; report += " .NET Framework Version: " + Assembly .GetExecutingAssembly() .GetReferencedAssemblies() .Where(x => x.Name == "System.Core").First().Version.ToString() + "\n"; - report += " Swagger Spec Version: {{version}}\n"; + report += " Version of the API: {{version}}\n"; report += " SDK Package Version: {{packageVersion}}\n"; return report; diff --git a/modules/swagger-codegen/src/main/resources/csharp/api.mustache b/modules/swagger-codegen/src/main/resources/csharp/api.mustache index 78d2a2598a9..d7483489d28 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api.mustache @@ -7,9 +7,11 @@ using {{packageName}}.Client; {{#hasImport}}using {{packageName}}.Model; {{/hasImport}} -namespace {{packageName}}.Api { +namespace {{packageName}}.Api +{ {{#operations}} - public interface I{{classname}} { + public interface I{{classname}} + { {{#operation}} /// /// {{summary}} {{notes}} @@ -30,19 +32,19 @@ namespace {{packageName}}.Api { /// /// Represents a collection of functions to interact with the API endpoints /// - public class {{classname}} : I{{classname}} { - + public class {{classname}} : I{{classname}} + { /// /// Initializes a new instance of the class. /// /// an instance of ApiClient (optional) /// - public {{classname}}(ApiClient apiClient = null) { - if (apiClient == null) { // use the default one in Configuration + public {{classname}}(ApiClient apiClient = null) + { + if (apiClient == null) // use the default one in Configuration this.ApiClient = Configuration.DefaultApiClient; - } else { + else this.ApiClient = apiClient; - } } /// @@ -58,7 +60,8 @@ namespace {{packageName}}.Api { /// Sets the base path of the API client. /// /// The base path - public void SetBasePath(String basePath) { + public void SetBasePath(String basePath) + { this.ApiClient.BasePath = basePath; } @@ -66,14 +69,15 @@ namespace {{packageName}}.Api { /// Gets the base path of the API client. /// /// The base path - public String GetBasePath(String basePath) { + public String GetBasePath(String basePath) + { return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// - /// The API client + /// The API client. public ApiClient ApiClient {get; set;} {{#operation}} @@ -82,8 +86,8 @@ namespace {{packageName}}.Api { /// {{#allParams}}/// {{description}} {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} - 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}}) + { {{#allParams}}{{#required}} // verify the required parameter '{{paramName}}' is set if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}"); @@ -115,11 +119,10 @@ namespace {{packageName}}.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.ErrorMessage, response.ErrorMessage); - } {{#returnType}}return ({{{returnType}}}) ApiClient.Deserialize(response.Content, typeof({{{returnType}}}), response.Headers);{{/returnType}}{{^returnType}}return;{{/returnType}} } @@ -129,7 +132,8 @@ namespace {{packageName}}.Api { /// {{#allParams}}/// {{description}} {{/allParams}}/// {{#returnType}}{{{returnType}}}{{/returnType}} - {{#returnType}}public async Task<{{{returnType}}}>{{/returnType}}{{^returnType}}public async Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { + {{#returnType}}public async Task<{{{returnType}}}>{{/returnType}}{{^returnType}}public async Task{{/returnType}} {{nickname}}Async ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) + { {{#allParams}}{{#required}}// verify the required parameter '{{paramName}}' is set if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}"); {{/required}}{{/allParams}} @@ -159,13 +163,13 @@ namespace {{packageName}}.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.{{httpMethod}}, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling {{nickname}}: " + response.Content, response.Content); - } + {{#returnType}}return ({{{returnType}}}) ApiClient.Deserialize(response.Content, typeof({{{returnType}}}), response.Headers);{{/returnType}}{{^returnType}} return;{{/returnType}} } {{/operation}} - } + } {{/operations}} } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs index 685d575a67b..5c670b2a36e 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/PetApi.cs @@ -6,9 +6,11 @@ using RestSharp; using IO.Swagger.Client; using IO.Swagger.Model; -namespace IO.Swagger.Api { +namespace IO.Swagger.Api +{ - public interface IPetApi { + public interface IPetApi + { /// /// Update an existing pet @@ -137,19 +139,19 @@ namespace IO.Swagger.Api { /// /// Represents a collection of functions to interact with the API endpoints /// - public class PetApi : IPetApi { - + public class PetApi : IPetApi + { /// /// Initializes a new instance of the class. /// /// an instance of ApiClient (optional) /// - public PetApi(ApiClient apiClient = null) { - if (apiClient == null) { // use the default one in Configuration + public PetApi(ApiClient apiClient = null) + { + if (apiClient == null) // use the default one in Configuration this.ApiClient = Configuration.DefaultApiClient; - } else { + else this.ApiClient = apiClient; - } } /// @@ -165,7 +167,8 @@ namespace IO.Swagger.Api { /// Sets the base path of the API client. /// /// The base path - public void SetBasePath(String basePath) { + public void SetBasePath(String basePath) + { this.ApiClient.BasePath = basePath; } @@ -173,14 +176,15 @@ namespace IO.Swagger.Api { /// Gets the base path of the API client. /// /// The base path - public String GetBasePath(String basePath) { + public String GetBasePath(String basePath) + { return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// - /// The API client + /// The API client. public ApiClient ApiClient {get; set;} @@ -189,8 +193,8 @@ namespace IO.Swagger.Api { /// /// Pet object that needs to be added to the store /// - public void UpdatePet (Pet body) { - + public void UpdatePet (Pet body) + { var path = "/pet"; @@ -215,11 +219,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePet: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePet: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -229,7 +232,8 @@ namespace IO.Swagger.Api { /// /// Pet object that needs to be added to the store /// - public async Task UpdatePetAsync (Pet body) { + public async Task UpdatePetAsync (Pet body) + { var path = "/pet"; @@ -253,9 +257,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePet: " + response.Content, response.Content); - } + return; } @@ -265,8 +269,8 @@ namespace IO.Swagger.Api { /// /// Pet object that needs to be added to the store /// - public void AddPet (Pet body) { - + public void AddPet (Pet body) + { var path = "/pet"; @@ -291,11 +295,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling AddPet: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling AddPet: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -305,7 +308,8 @@ namespace IO.Swagger.Api { /// /// Pet object that needs to be added to the store /// - public async Task AddPetAsync (Pet body) { + public async Task AddPetAsync (Pet body) + { var path = "/pet"; @@ -329,9 +333,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling AddPet: " + response.Content, response.Content); - } + return; } @@ -341,8 +345,8 @@ namespace IO.Swagger.Api { /// /// Status values that need to be considered for filter /// List - public List FindPetsByStatus (List status) { - + public List FindPetsByStatus (List status) + { var path = "/pet/findByStatus"; @@ -367,11 +371,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByStatus: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByStatus: " + response.ErrorMessage, response.ErrorMessage); - } return (List) ApiClient.Deserialize(response.Content, typeof(List), response.Headers); } @@ -381,7 +384,8 @@ namespace IO.Swagger.Api { /// /// Status values that need to be considered for filter /// List - public async Task> FindPetsByStatusAsync (List status) { + public async Task> FindPetsByStatusAsync (List status) + { var path = "/pet/findByStatus"; @@ -405,9 +409,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByStatus: " + response.Content, response.Content); - } + return (List) ApiClient.Deserialize(response.Content, typeof(List), response.Headers); } @@ -416,8 +420,8 @@ namespace IO.Swagger.Api { /// /// Tags to filter by /// List - public List FindPetsByTags (List tags) { - + public List FindPetsByTags (List tags) + { var path = "/pet/findByTags"; @@ -442,11 +446,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByTags: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByTags: " + response.ErrorMessage, response.ErrorMessage); - } return (List) ApiClient.Deserialize(response.Content, typeof(List), response.Headers); } @@ -456,7 +459,8 @@ namespace IO.Swagger.Api { /// /// Tags to filter by /// List - public async Task> FindPetsByTagsAsync (List tags) { + public async Task> FindPetsByTagsAsync (List tags) + { var path = "/pet/findByTags"; @@ -480,9 +484,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling FindPetsByTags: " + response.Content, response.Content); - } + return (List) ApiClient.Deserialize(response.Content, typeof(List), response.Headers); } @@ -491,8 +495,8 @@ namespace IO.Swagger.Api { /// /// ID of pet that needs to be fetched /// Pet - public Pet GetPetById (long? petId) { - + public Pet GetPetById (long? petId) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling GetPetById"); @@ -520,11 +524,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetPetById: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling GetPetById: " + response.ErrorMessage, response.ErrorMessage); - } return (Pet) ApiClient.Deserialize(response.Content, typeof(Pet), response.Headers); } @@ -534,7 +537,8 @@ namespace IO.Swagger.Api { /// /// ID of pet that needs to be fetched /// Pet - public async Task GetPetByIdAsync (long? petId) { + public async Task GetPetByIdAsync (long? petId) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling GetPetById"); @@ -560,9 +564,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetPetById: " + response.Content, response.Content); - } + return (Pet) ApiClient.Deserialize(response.Content, typeof(Pet), response.Headers); } @@ -573,8 +577,8 @@ namespace IO.Swagger.Api { /// Updated name of the pet /// Updated status of the pet /// - public void UpdatePetWithForm (string petId, string name, string status) { - + public void UpdatePetWithForm (string petId, string name, string status) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling UpdatePetWithForm"); @@ -604,11 +608,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePetWithForm: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePetWithForm: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -620,7 +623,8 @@ namespace IO.Swagger.Api { /// Updated name of the pet /// Updated status of the pet /// - public async Task UpdatePetWithFormAsync (string petId, string name, string status) { + public async Task UpdatePetWithFormAsync (string petId, string name, string status) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling UpdatePetWithForm"); @@ -648,9 +652,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdatePetWithForm: " + response.Content, response.Content); - } + return; } @@ -661,8 +665,8 @@ namespace IO.Swagger.Api { /// /// Pet id to delete /// - public void DeletePet (string apiKey, long? petId) { - + public void DeletePet (string apiKey, long? petId) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling DeletePet"); @@ -691,11 +695,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeletePet: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling DeletePet: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -706,7 +709,8 @@ namespace IO.Swagger.Api { /// /// Pet id to delete /// - public async Task DeletePetAsync (string apiKey, long? petId) { + public async Task DeletePetAsync (string apiKey, long? petId) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling DeletePet"); @@ -733,9 +737,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeletePet: " + response.Content, response.Content); - } + return; } @@ -747,8 +751,8 @@ namespace IO.Swagger.Api { /// Additional data to pass to server /// file to upload /// - public void UploadFile (long? petId, string additionalMetadata, Stream file) { - + public void UploadFile (long? petId, string additionalMetadata, Stream file) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling UploadFile"); @@ -778,11 +782,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UploadFile: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling UploadFile: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -794,7 +797,8 @@ namespace IO.Swagger.Api { /// Additional data to pass to server /// file to upload /// - public async Task UploadFileAsync (long? petId, string additionalMetadata, Stream file) { + public async Task UploadFileAsync (long? petId, string additionalMetadata, Stream file) + { // verify the required parameter 'petId' is set if (petId == null) throw new ApiException(400, "Missing required parameter 'petId' when calling UploadFile"); @@ -822,13 +826,13 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UploadFile: " + response.Content, response.Content); - } + return; } - } + } } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs index 6c337870706..8bb9056d1f7 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/StoreApi.cs @@ -6,9 +6,11 @@ using RestSharp; using IO.Swagger.Client; using IO.Swagger.Model; -namespace IO.Swagger.Api { +namespace IO.Swagger.Api +{ - public interface IStoreApi { + public interface IStoreApi + { /// /// Returns pet inventories by status Returns a map of status codes to quantities @@ -69,19 +71,19 @@ namespace IO.Swagger.Api { /// /// Represents a collection of functions to interact with the API endpoints /// - public class StoreApi : IStoreApi { - + public class StoreApi : IStoreApi + { /// /// Initializes a new instance of the class. /// /// an instance of ApiClient (optional) /// - public StoreApi(ApiClient apiClient = null) { - if (apiClient == null) { // use the default one in Configuration + public StoreApi(ApiClient apiClient = null) + { + if (apiClient == null) // use the default one in Configuration this.ApiClient = Configuration.DefaultApiClient; - } else { + else this.ApiClient = apiClient; - } } /// @@ -97,7 +99,8 @@ namespace IO.Swagger.Api { /// Sets the base path of the API client. /// /// The base path - public void SetBasePath(String basePath) { + public void SetBasePath(String basePath) + { this.ApiClient.BasePath = basePath; } @@ -105,14 +108,15 @@ namespace IO.Swagger.Api { /// Gets the base path of the API client. /// /// The base path - public String GetBasePath(String basePath) { + public String GetBasePath(String basePath) + { return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// - /// The API client + /// The API client. public ApiClient ApiClient {get; set;} @@ -120,8 +124,8 @@ namespace IO.Swagger.Api { /// Returns pet inventories by status Returns a map of status codes to quantities /// /// Dictionary - public Dictionary GetInventory () { - + public Dictionary GetInventory () + { var path = "/store/inventory"; @@ -145,11 +149,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetInventory: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling GetInventory: " + response.ErrorMessage, response.ErrorMessage); - } return (Dictionary) ApiClient.Deserialize(response.Content, typeof(Dictionary), response.Headers); } @@ -158,7 +161,8 @@ namespace IO.Swagger.Api { /// Returns pet inventories by status Returns a map of status codes to quantities /// /// Dictionary - public async Task> GetInventoryAsync () { + public async Task> GetInventoryAsync () + { var path = "/store/inventory"; @@ -181,9 +185,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetInventory: " + response.Content, response.Content); - } + return (Dictionary) ApiClient.Deserialize(response.Content, typeof(Dictionary), response.Headers); } @@ -192,8 +196,8 @@ namespace IO.Swagger.Api { /// /// order placed for purchasing the pet /// Order - public Order PlaceOrder (Order body) { - + public Order PlaceOrder (Order body) + { var path = "/store/order"; @@ -218,11 +222,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling PlaceOrder: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling PlaceOrder: " + response.ErrorMessage, response.ErrorMessage); - } return (Order) ApiClient.Deserialize(response.Content, typeof(Order), response.Headers); } @@ -232,7 +235,8 @@ namespace IO.Swagger.Api { /// /// order placed for purchasing the pet /// Order - public async Task PlaceOrderAsync (Order body) { + public async Task PlaceOrderAsync (Order body) + { var path = "/store/order"; @@ -256,9 +260,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling PlaceOrder: " + response.Content, response.Content); - } + return (Order) ApiClient.Deserialize(response.Content, typeof(Order), response.Headers); } @@ -267,8 +271,8 @@ namespace IO.Swagger.Api { /// /// ID of pet that needs to be fetched /// Order - public Order GetOrderById (string orderId) { - + public Order GetOrderById (string orderId) + { // verify the required parameter 'orderId' is set if (orderId == null) throw new ApiException(400, "Missing required parameter 'orderId' when calling GetOrderById"); @@ -296,11 +300,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetOrderById: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling GetOrderById: " + response.ErrorMessage, response.ErrorMessage); - } return (Order) ApiClient.Deserialize(response.Content, typeof(Order), response.Headers); } @@ -310,7 +313,8 @@ namespace IO.Swagger.Api { /// /// ID of pet that needs to be fetched /// Order - public async Task GetOrderByIdAsync (string orderId) { + public async Task GetOrderByIdAsync (string orderId) + { // verify the required parameter 'orderId' is set if (orderId == null) throw new ApiException(400, "Missing required parameter 'orderId' when calling GetOrderById"); @@ -336,9 +340,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetOrderById: " + response.Content, response.Content); - } + return (Order) ApiClient.Deserialize(response.Content, typeof(Order), response.Headers); } @@ -347,8 +351,8 @@ namespace IO.Swagger.Api { /// /// ID of the order that needs to be deleted /// - public void DeleteOrder (string orderId) { - + public void DeleteOrder (string orderId) + { // verify the required parameter 'orderId' is set if (orderId == null) throw new ApiException(400, "Missing required parameter 'orderId' when calling DeleteOrder"); @@ -376,11 +380,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeleteOrder: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling DeleteOrder: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -390,7 +393,8 @@ namespace IO.Swagger.Api { /// /// ID of the order that needs to be deleted /// - public async Task DeleteOrderAsync (string orderId) { + public async Task DeleteOrderAsync (string orderId) + { // verify the required parameter 'orderId' is set if (orderId == null) throw new ApiException(400, "Missing required parameter 'orderId' when calling DeleteOrder"); @@ -416,13 +420,13 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeleteOrder: " + response.Content, response.Content); - } + return; } - } + } } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs index 04c2c4e2dbb..934786eff3d 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Api/UserApi.cs @@ -6,9 +6,11 @@ using RestSharp; using IO.Swagger.Client; using IO.Swagger.Model; -namespace IO.Swagger.Api { +namespace IO.Swagger.Api +{ - public interface IUserApi { + public interface IUserApi + { /// /// Create user This can only be done by the logged in user. @@ -129,19 +131,19 @@ namespace IO.Swagger.Api { /// /// Represents a collection of functions to interact with the API endpoints /// - public class UserApi : IUserApi { - + public class UserApi : IUserApi + { /// /// Initializes a new instance of the class. /// /// an instance of ApiClient (optional) /// - public UserApi(ApiClient apiClient = null) { - if (apiClient == null) { // use the default one in Configuration + public UserApi(ApiClient apiClient = null) + { + if (apiClient == null) // use the default one in Configuration this.ApiClient = Configuration.DefaultApiClient; - } else { + else this.ApiClient = apiClient; - } } /// @@ -157,7 +159,8 @@ namespace IO.Swagger.Api { /// Sets the base path of the API client. /// /// The base path - public void SetBasePath(String basePath) { + public void SetBasePath(String basePath) + { this.ApiClient.BasePath = basePath; } @@ -165,14 +168,15 @@ namespace IO.Swagger.Api { /// Gets the base path of the API client. /// /// The base path - public String GetBasePath(String basePath) { + public String GetBasePath(String basePath) + { return this.ApiClient.BasePath; } /// /// Gets or sets the API client. /// - /// The API client + /// The API client. public ApiClient ApiClient {get; set;} @@ -181,8 +185,8 @@ namespace IO.Swagger.Api { /// /// Created user object /// - public void CreateUser (User body) { - + public void CreateUser (User body) + { var path = "/user"; @@ -207,11 +211,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUser: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling CreateUser: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -221,7 +224,8 @@ namespace IO.Swagger.Api { /// /// Created user object /// - public async Task CreateUserAsync (User body) { + public async Task CreateUserAsync (User body) + { var path = "/user"; @@ -245,9 +249,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUser: " + response.Content, response.Content); - } + return; } @@ -257,8 +261,8 @@ namespace IO.Swagger.Api { /// /// List of user object /// - public void CreateUsersWithArrayInput (List body) { - + public void CreateUsersWithArrayInput (List body) + { var path = "/user/createWithArray"; @@ -283,11 +287,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithArrayInput: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithArrayInput: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -297,7 +300,8 @@ namespace IO.Swagger.Api { /// /// List of user object /// - public async Task CreateUsersWithArrayInputAsync (List body) { + public async Task CreateUsersWithArrayInputAsync (List body) + { var path = "/user/createWithArray"; @@ -321,9 +325,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithArrayInput: " + response.Content, response.Content); - } + return; } @@ -333,8 +337,8 @@ namespace IO.Swagger.Api { /// /// List of user object /// - public void CreateUsersWithListInput (List body) { - + public void CreateUsersWithListInput (List body) + { var path = "/user/createWithList"; @@ -359,11 +363,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithListInput: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithListInput: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -373,7 +376,8 @@ namespace IO.Swagger.Api { /// /// List of user object /// - public async Task CreateUsersWithListInputAsync (List body) { + public async Task CreateUsersWithListInputAsync (List body) + { var path = "/user/createWithList"; @@ -397,9 +401,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling CreateUsersWithListInput: " + response.Content, response.Content); - } + return; } @@ -410,8 +414,8 @@ namespace IO.Swagger.Api { /// The user name for login /// The password for login in clear text /// string - public string LoginUser (string username, string password) { - + public string LoginUser (string username, string password) + { var path = "/user/login"; @@ -437,11 +441,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling LoginUser: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling LoginUser: " + response.ErrorMessage, response.ErrorMessage); - } return (string) ApiClient.Deserialize(response.Content, typeof(string), response.Headers); } @@ -452,7 +455,8 @@ namespace IO.Swagger.Api { /// The user name for login /// The password for login in clear text /// string - public async Task LoginUserAsync (string username, string password) { + public async Task LoginUserAsync (string username, string password) + { var path = "/user/login"; @@ -477,9 +481,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling LoginUser: " + response.Content, response.Content); - } + return (string) ApiClient.Deserialize(response.Content, typeof(string), response.Headers); } @@ -487,8 +491,8 @@ namespace IO.Swagger.Api { /// Logs out current logged in user session /// /// - public void LogoutUser () { - + public void LogoutUser () + { var path = "/user/logout"; @@ -512,11 +516,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling LogoutUser: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling LogoutUser: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -525,7 +528,8 @@ namespace IO.Swagger.Api { /// Logs out current logged in user session /// /// - public async Task LogoutUserAsync () { + public async Task LogoutUserAsync () + { var path = "/user/logout"; @@ -548,9 +552,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling LogoutUser: " + response.Content, response.Content); - } + return; } @@ -560,8 +564,8 @@ namespace IO.Swagger.Api { /// /// The name that needs to be fetched. Use user1 for testing. /// User - public User GetUserByName (string username) { - + public User GetUserByName (string username) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling GetUserByName"); @@ -589,11 +593,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetUserByName: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling GetUserByName: " + response.ErrorMessage, response.ErrorMessage); - } return (User) ApiClient.Deserialize(response.Content, typeof(User), response.Headers); } @@ -603,7 +606,8 @@ namespace IO.Swagger.Api { /// /// The name that needs to be fetched. Use user1 for testing. /// User - public async Task GetUserByNameAsync (string username) { + public async Task GetUserByNameAsync (string username) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling GetUserByName"); @@ -629,9 +633,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.GET, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling GetUserByName: " + response.Content, response.Content); - } + return (User) ApiClient.Deserialize(response.Content, typeof(User), response.Headers); } @@ -641,8 +645,8 @@ namespace IO.Swagger.Api { /// name that need to be deleted /// Updated user object /// - public void UpdateUser (string username, User body) { - + public void UpdateUser (string username, User body) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling UpdateUser"); @@ -671,11 +675,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdateUser: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling UpdateUser: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -686,7 +689,8 @@ namespace IO.Swagger.Api { /// name that need to be deleted /// Updated user object /// - public async Task UpdateUserAsync (string username, User body) { + public async Task UpdateUserAsync (string username, User body) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling UpdateUser"); @@ -713,9 +717,9 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.PUT, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling UpdateUser: " + response.Content, response.Content); - } + return; } @@ -725,8 +729,8 @@ namespace IO.Swagger.Api { /// /// The name that needs to be deleted /// - public void DeleteUser (string username) { - + public void DeleteUser (string username) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling DeleteUser"); @@ -754,11 +758,10 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) ApiClient.CallApi(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeleteUser: " + response.Content, response.Content); - } else if (((int)response.StatusCode) == 0) { + else if (((int)response.StatusCode) == 0) throw new ApiException ((int)response.StatusCode, "Error calling DeleteUser: " + response.ErrorMessage, response.ErrorMessage); - } return; } @@ -768,7 +771,8 @@ namespace IO.Swagger.Api { /// /// The name that needs to be deleted /// - public async Task DeleteUserAsync (string username) { + public async Task DeleteUserAsync (string username) + { // verify the required parameter 'username' is set if (username == null) throw new ApiException(400, "Missing required parameter 'username' when calling DeleteUser"); @@ -794,13 +798,13 @@ namespace IO.Swagger.Api { // make the HTTP request IRestResponse response = (IRestResponse) await ApiClient.CallApiAsync(path, Method.DELETE, queryParams, postBody, headerParams, formParams, fileParams, authSettings); - if (((int)response.StatusCode) >= 400) { + if (((int)response.StatusCode) >= 400) throw new ApiException ((int)response.StatusCode, "Error calling DeleteUser: " + response.Content, response.Content); - } + return; } - } + } } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs index 1fd6a02213e..1b6198e3e7f 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/ApiClient.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Text.RegularExpressions; using System.IO; +using System.Web; using System.Linq; using System.Net; using System.Text; @@ -10,222 +12,222 @@ using Newtonsoft.Json; using RestSharp; using RestSharp.Extensions; -namespace IO.Swagger.Client { +namespace IO.Swagger.Client +{ /// - /// API client is mainly responible for making the HTTP call to the API backend + /// API client is mainly responible for making the HTTP call to the API backend. /// - public class ApiClient { + public class ApiClient + { + private readonly Dictionary _defaultHeaderMap = new Dictionary(); /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The base path. - public ApiClient(String basePath="http://petstore.swagger.io/v2") { - this.BasePath = basePath; - this.RestClient = new RestClient(this.BasePath); + public ApiClient(String basePath="http://petstore.swagger.io/v2") + { + BasePath = basePath; + RestClient = new RestClient(BasePath); } /// /// Gets or sets the base path. /// - /// The base path. public string BasePath { get; set; } /// - /// Gets or sets the RestClient + /// Gets or sets the RestClient. /// - /// The RestClient. public RestClient RestClient { get; set; } - private Dictionary DefaultHeaderMap = new Dictionary(); + /// + /// Gets the default header. + /// + public Dictionary DefaultHeader + { + get { return _defaultHeaderMap; } + } /// - /// Make the HTTP request (Sync) + /// Makes the HTTP request (Sync). /// - /// URL path - /// HTTP method - /// Query parameters - /// HTTP body (POST request) - /// Header parameters - /// Form parameters - /// File parameters - /// Authentication settings + /// URL path. + /// HTTP method. + /// Query parameters. + /// HTTP body (POST request). + /// Header parameters. + /// Form parameters. + /// File parameters. + /// Authentication settings. /// Object public Object CallApi(String path, RestSharp.Method method, Dictionary queryParams, String postBody, Dictionary headerParams, Dictionary formParams, - Dictionary fileParams, String[] authSettings) { + Dictionary fileParams, String[] authSettings) + { var request = new RestRequest(path, method); UpdateParamsForAuth(queryParams, headerParams, authSettings); // add default header, if any - foreach(KeyValuePair defaultHeader in this.DefaultHeaderMap) + foreach(var defaultHeader in _defaultHeaderMap) request.AddHeader(defaultHeader.Key, defaultHeader.Value); // add header parameter, if any - foreach(KeyValuePair param in headerParams) + foreach(var param in headerParams) request.AddHeader(param.Key, param.Value); // add query parameter, if any - foreach(KeyValuePair param in queryParams) + foreach(var param in queryParams) request.AddQueryParameter(param.Key, param.Value); // add form parameter, if any - foreach(KeyValuePair param in formParams) + foreach(var param in formParams) request.AddParameter(param.Key, param.Value); // add file parameter, if any - foreach(KeyValuePair param in fileParams) + foreach(var param in fileParams) request.AddFile(param.Value.Name, param.Value.Writer, param.Value.FileName, param.Value.ContentType); - - if (postBody != null) { - request.AddParameter("application/json", postBody, ParameterType.RequestBody); // http body (model) parameter - } + if (postBody != null) // http body (model) parameter + request.AddParameter("application/json", postBody, ParameterType.RequestBody); return (Object)RestClient.Execute(request); } /// - /// Make the HTTP request (Async) + /// Makes the asynchronous HTTP request. /// - /// URL path - /// HTTP method - /// Query parameters - /// HTTP body (POST request) - /// Header parameters - /// Form parameters - /// File parameters - /// Authentication settings - /// Task + /// URL path. + /// HTTP method. + /// Query parameters. + /// HTTP body (POST request). + /// Header parameters. + /// Form parameters. + /// File parameters. + /// Authentication settings. + /// The Task instance. public async Task CallApiAsync(String path, RestSharp.Method method, Dictionary queryParams, String postBody, - Dictionary headerParams, Dictionary formParams, Dictionary fileParams, String[] authSettings) { + Dictionary headerParams, Dictionary formParams, Dictionary fileParams, String[] authSettings) + { var request = new RestRequest(path, method); UpdateParamsForAuth(queryParams, headerParams, authSettings); // add default header, if any - foreach(KeyValuePair defaultHeader in this.DefaultHeaderMap) + foreach(var defaultHeader in _defaultHeaderMap) request.AddHeader(defaultHeader.Key, defaultHeader.Value); // add header parameter, if any - foreach(KeyValuePair param in headerParams) + foreach(var param in headerParams) request.AddHeader(param.Key, param.Value); // add query parameter, if any - foreach(KeyValuePair param in queryParams) + foreach(var param in queryParams) request.AddQueryParameter(param.Key, param.Value); // add form parameter, if any - foreach(KeyValuePair param in formParams) + foreach(var param in formParams) request.AddParameter(param.Key, param.Value); // add file parameter, if any - foreach(KeyValuePair param in fileParams) + foreach(var param in fileParams) request.AddFile(param.Value.Name, param.Value.Writer, param.Value.FileName, param.Value.ContentType); - - - if (postBody != null) { - request.AddParameter("application/json", postBody, ParameterType.RequestBody); // http body (model) parameter - } + + if (postBody != null) // http body (model) parameter + request.AddParameter("application/json", postBody, ParameterType.RequestBody); return (Object) await RestClient.ExecuteTaskAsync(request); - } /// - /// Add default header + /// Add default header. /// - /// Header field name - /// Header field value + /// Header field name. + /// Header field value. /// - public void AddDefaultHeader(string key, string value) { - DefaultHeaderMap.Add(key, value); + public void AddDefaultHeader(string key, string value) + { + _defaultHeaderMap.Add(key, value); } /// - /// Get default header + /// Escape string (url-encoded). /// - /// Dictionary of default header - public Dictionary GetDefaultHeader() { - return DefaultHeaderMap; + /// String to be escaped. + /// Escaped string. + public string EscapeString(string str) + { + return HttpUtility.UrlEncode(str); } /// - /// escape string (url-encoded) + /// Create FileParameter based on Stream. /// - /// String to be escaped - /// Escaped string - public string EscapeString(string str) { - return str; - } - - /// - /// Create FileParameter based on Stream - /// - /// parameter name - /// Input stream - /// FileParameter + /// Parameter name. + /// Input stream. + /// FileParameter. public FileParameter ParameterToFile(string name, Stream stream) { - if (stream is FileStream) { + if (stream is FileStream) return FileParameter.Create(name, stream.ReadAsBytes(), Path.GetFileName(((FileStream)stream).Name)); - } else { + else return FileParameter.Create(name, stream.ReadAsBytes(), "no_file_name_provided"); - } } /// - /// if parameter is DateTime, output in ISO8601 format - /// if parameter is a list of string, join the list with "," - /// otherwise just return the string + /// If parameter is DateTime, output in ISO8601 format. + /// If parameter is a list of string, join the list with ",". + /// Otherwise just return the string. /// - /// The parameter (header, path, query, form) - /// Formatted string + /// The parameter (header, path, query, form). + /// Formatted string. public string ParameterToString(object obj) { - if (obj is DateTime) { + if (obj is DateTime) return ((DateTime)obj).ToString ("u"); - } else if (obj is List) { + else if (obj is List) return String.Join(",", obj as List); - } else { + else return Convert.ToString (obj); - } } /// - /// Deserialize the JSON string into a proper object + /// Deserialize the JSON string into a proper object. /// - /// HTTP body (e.g. string, JSON) - /// Object type - /// Object representation of the JSON string - public object Deserialize(string content, Type type, IList headers=null) { - if (type == typeof(Object)) { // return an object + /// HTTP body (e.g. string, JSON). + /// Object type. + /// Object representation of the JSON string. + public object Deserialize(string content, Type type, IList headers=null) + { + if (type == typeof(Object)) // return an object + { return (Object)content; - } else if (type == typeof(Stream)) { + } else if (type == typeof(Stream)) + { String fileName, filePath; - if (String.IsNullOrEmpty (Configuration.TempFolderPath)) { + if (String.IsNullOrEmpty (Configuration.TempFolderPath)) filePath = System.IO.Path.GetTempPath (); - } else { + else filePath = Configuration.TempFolderPath; - } - + Regex regex = new Regex(@"Content-Disposition:.*filename=['""]?([^'""\s]+)['""]?$"); Match match = regex.Match(headers.ToString()); - if (match.Success) { - // replace first and last " or ', if found + if (match.Success) // replace first and last " or ', if found fileName = filePath + match.Value.Replace("\"", "").Replace("'",""); - } else { + else fileName = filePath + Guid.NewGuid().ToString(); - } + File.WriteAllText (fileName, content); return new FileStream(fileName, FileMode.Open); - } else if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) { // return a datetime object + } else if (type.Name.StartsWith("System.Nullable`1[[System.DateTime")) // return a datetime object + { return DateTime.Parse(content, null, System.Globalization.DateTimeStyles.RoundtripKind); - } else if (type.Name == "String" || type.Name.StartsWith("System.Nullable")) { // return primitive + } else if (type.Name == "String" || type.Name.StartsWith("System.Nullable")) // return primitive type + { return ConvertType(content, type); } @@ -234,56 +236,61 @@ namespace IO.Swagger.Client { { return JsonConvert.DeserializeObject(content, type); } - catch (IOException e) { + catch (IOException e) + { throw new ApiException(500, e.Message); } } /// - /// Serialize an object into JSON string + /// Serialize an object into JSON string. /// - /// Object - /// JSON string - public string Serialize(object obj) { + /// Object. + /// JSON string. + public string Serialize(object obj) + { try { return obj != null ? JsonConvert.SerializeObject(obj) : null; } - catch (Exception e) { + catch (Exception e) + { throw new ApiException(500, e.Message); } } /// - /// Get the API key with prefix + /// Get the API key with prefix. /// - /// Object - /// API key with prefix + /// API key identifier (authentication scheme). + /// API key with prefix. public string GetApiKeyWithPrefix (string apiKeyIdentifier) { var apiKeyValue = ""; Configuration.ApiKey.TryGetValue (apiKeyIdentifier, out apiKeyValue); var apiKeyPrefix = ""; - if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) { + if (Configuration.ApiKeyPrefix.TryGetValue (apiKeyIdentifier, out apiKeyPrefix)) return apiKeyPrefix + " " + apiKeyValue; - } else { + else return apiKeyValue; - } } /// - /// Update parameters based on authentication + /// Update parameters based on authentication. /// - /// Query parameters - /// Header parameters - /// Authentication settings - public void UpdateParamsForAuth(Dictionary queryParams, Dictionary headerParams, string[] authSettings) { + /// Query parameters. + /// Header parameters. + /// Authentication settings. + public void UpdateParamsForAuth(Dictionary queryParams, Dictionary headerParams, string[] authSettings) + { if (authSettings == null || authSettings.Length == 0) return; - foreach (string auth in authSettings) { + foreach (string auth in authSettings) + { // determine which one to use - switch(auth) { + switch(auth) + { case "api_key": headerParams["api_key"] = GetApiKeyWithPrefix("api_key"); @@ -300,24 +307,26 @@ namespace IO.Swagger.Client { break; } } - } /// - /// Encode string in base64 format + /// Encode string in base64 format. /// - /// String to be encoded - public static string Base64Encode(string text) { + /// String to be encoded. + /// Encoded string. + public static string Base64Encode(string text) + { var textByte = System.Text.Encoding.UTF8.GetBytes(text); return System.Convert.ToBase64String(textByte); } /// - /// Dynamically cast the object into target type + /// Dynamically cast the object into target type. /// Ref: http://stackoverflow.com/questions/4925718/c-dynamic-runtime-cast /// - /// Object to be casted + /// Object to be casted /// Target type + /// Casted object public static dynamic ConvertType(dynamic source, Type dest) { return Convert.ChangeType(source, dest); } diff --git a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs index 56ce39eadbe..b875606e6c9 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs +++ b/samples/client/petstore/csharp/SwaggerClientTest/Lib/SwaggerClient/src/main/csharp/IO/Swagger/Client/Configuration.cs @@ -3,18 +3,20 @@ using System.Reflection; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Net; using System.Text; -namespace IO.Swagger.Client { +namespace IO.Swagger.Client +{ /// /// Represents a set of configuration settings /// - public class Configuration{ + public class Configuration + { /// - /// Version of the package + /// Version of the package. /// + /// Version of the package. public const string Version = "1.0.0"; /// @@ -24,25 +26,25 @@ namespace IO.Swagger.Client { public static ApiClient DefaultApiClient = new ApiClient(); /// - /// Gets or sets the username (HTTP basic authentication) + /// Gets or sets the username (HTTP basic authentication). /// /// The username. public static String Username { get; set; } /// - /// Gets or sets the password (HTTP basic authentication) + /// Gets or sets the password (HTTP basic authentication). /// /// The password. public static String Password { get; set; } /// - /// Gets or sets the API key based on the authentication name + /// Gets or sets the API key based on the authentication name. /// /// The API key. public static Dictionary ApiKey = new Dictionary(); /// - /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name + /// Gets or sets the prefix (e.g. Token) of the API key based on the authentication name. /// /// The prefix of the API key. public static Dictionary ApiKeyPrefix = new Dictionary(); @@ -50,46 +52,46 @@ namespace IO.Swagger.Client { private static string _tempFolderPath = Path.GetTempPath(); /// - /// Gets or sets the temporary folder path to store the files downloaded from the server + /// Gets or sets the temporary folder path to store the files downloaded from the server. /// - /// Folder path - public static String TempFolderPath { - get { - return _tempFolderPath; - } + /// Folder path. + public static String TempFolderPath + { + get { return _tempFolderPath; } - set { - if (String.IsNullOrEmpty(value)) { + set + { + if (String.IsNullOrEmpty(value)) + { _tempFolderPath = value; return; } // create the directory if it does not exist - if (!Directory.Exists(value)) { + if (!Directory.Exists(value)) Directory.CreateDirectory(value); - } // check if the path contains directory separator at the end - if (value[value.Length - 1] == Path.DirectorySeparatorChar) { + if (value[value.Length - 1] == Path.DirectorySeparatorChar) _tempFolderPath = value; - } else { + else _tempFolderPath = value + Path.DirectorySeparatorChar; - } } } /// - /// Return a string contain essential information for debugging + /// Returns a string with essential information for debugging. /// - /// Folder path - public static String ToDebugReport() { + /// Debugging Report + public static String ToDebugReport() + { String report = "C# SDK () Debug Report:\n"; report += " OS: " + Environment.OSVersion + "\n"; report += " .NET Framework Version: " + Assembly .GetExecutingAssembly() .GetReferencedAssemblies() .Where(x => x.Name == "System.Core").First().Version.ToString() + "\n"; - report += " Swagger Spec Version: 1.0.0\n"; + report += " Version of the API: 1.0.0\n"; report += " SDK Package Version: 1.0.0\n"; return report; diff --git a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.csproj b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.csproj index 373b3ee3779..670402c0cd2 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.csproj +++ b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.csproj @@ -40,6 +40,7 @@ packages\NUnit.2.6.4\lib\nunit.framework.dll + diff --git a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs index 5a5f6ebb92c..6dc436a4642 100644 --- a/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs +++ b/samples/client/petstore/csharp/SwaggerClientTest/SwaggerClientTest.userprefs @@ -2,7 +2,7 @@ - + diff --git a/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll b/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll index 378be56e0812664361715a94878ad74ba55aa8b7..a120d21961c3b2640ac3d0ec0fdf44cce8bd7eda 100755 GIT binary patch delta 16807 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 Bb^8DS delta 16869 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 diff --git a/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll.mdb b/samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/SwaggerClientTest.dll.mdb index 6e9caa87e2bfcd2b64d99280f18a69f2cbb2353f..fc4d75c3a452901d9ca9ee91b755dfc23cab55aa 100644 GIT binary patch literal 16324 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 Q)vp9|_16b;^}B%o7qAC%r~m)} literal 17288 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 Bb^8DS delta 16869 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 diff --git a/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll.mdb b/samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/SwaggerClientTest.dll.mdb index 6e9caa87e2bfcd2b64d99280f18a69f2cbb2353f..fc4d75c3a452901d9ca9ee91b755dfc23cab55aa 100644 GIT binary patch literal 16324 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 Q)vp9|_16b;^}B%o7qAC%r~m)} literal 17288 zcmd5^30zcF+kfu81I#c?H8UVMvI!zCC_3OagJPf{i-0UHF#xW$s%p zWolMhn&pzFrj=&qzHgaY?rCanm9Jah|J*xsVPNd_`~AMpl;3~;|NERf=Q+=L&N+7- zJr}-uKe+KPU5zCD%eAau^g^@T)cHrBo;S433coS2L}e&i)}F`%+yvVL!Ax(Bk@Rlp zzz#$osUU3s*!S4Kzwl29wiiw3!m}!@AWYeDtYy_n1dtB7tN0S@`l!X zt?A&Rr0q8s_X*ukGoGYoXRvN?-tZP*i|9WTTfEMS>~O$`^c{` z`*M;j?V~@pdQ7_Xfgip7q_kTaUu?KY%E@SX<<0}$@7Egz4)rhkYRk1$cY629Ykb#X zxz@7Eg3=Nv?O(d?vnhP>u$Ut5e(zB(L+8`nC#?Okr6q$3@`sk^JR|_GQHMj1-~HFR zKG)Wqd|mlWIL&%e0_cvltSCG-r_!2VT0Y!K-`77nl3!OOD3eF695h-tXZ4daVWp<0 zmgiZ^owWP;O#!CoT2EiJ&QP*)>&M1t%d5fNygQzq{*s|`V+5GcYKRVE`WJPLQW96=f zSw58a|99wT$A9N3e_^rqLP^|#Eklj(FTQ)b!waVJts zr#3vtPF$YW)R#CQl!U1qXVT*@!lXAu=!xT=iO@9C*3)S_UjJViWhO5UT0#ZMvcx_#a+|Ub=?hH;b*MSn2W+lP5odMH$hJm z^^^2c#b0n73PQNWdRn6Y#KG8%`&v)m=r_WsBt=F3PgfiprSMyy4{Pku$V%aE7(AvY;ftg4~ql){3&y zk_s!?I%ov9kdwM-1$UGq;cJeoXSQ@So6WJII#b*P-Pj^SmEKTTXfzwLMefMrZl=-H z4+!-4*Jyl#G@7=ZHGz@Zc7^};_6+R+9?5y5M-S?0jpr^;F>ri^d*6#b@cPi}9}RCD z|48A5Itwpvrl`VN2xeG|%k?QCgnPN;v z!Hsv}oTX3~Gu1c^IeFF|=TkvZaV_OUK0k_+LVbP=G8q`1*G$Dt@uuIs$NI?eUiYCJ zJ~y%b7zb@6~tSW-O+3@$5@Qw92Jzj!0mD}N$nYKp$Tk^pfN>l^VL3ChrBF> zJfsRC8#?rEq~fj{=um@84djpy`qCla!@iF-1d zN3f4}&W1KyoziOu9niLOGfhKNm+F+4kG7?}{7rGOI_pbY{Z9DFvG4V#eg6CXA8YJ8 zxa+ob-{;;(>@!_zr#pm&-Tq-=N7V}Zsi02X!sS6;YjytFpEd{l5FiJtkGw%V*h!>j&I+jz#~H zyc~<`lCyDYUza-AS7Ld57QZSjNX3|$n(&k=u7ir7+=y;98WUpA6n{R1E`AbPA44KUNNnI7jUE|s0lmVw2!HExN*p?6!ghZ+SKGo6FKN_o6_c{ z-!=V*gFf--K}#0^4+*&F6=^sZ;ap0i;tw>XFPiOaCI`E$IW2F#qB*vmtT}=(w$8Om zWc8vWeAApZHs8;_j73KfX4Jk~5$-pq2hIPIcbMmRy&}vFqj_QT!|dM|FK4Q+ScDB> z^i|l`axpGwa7+ymj)&2Su#>gS&4im_bSvz4nE$ysDG0c(s(IPsY>2XK;rRbw=A%j& z+k&pPsA_4?lyIyi{n+w2w*SfaMpd8Lv&*uF#V4Q7*SsuyX}s-J=cOrZC<>Qa((drn z;c|dqwxac|HnjR@1Kjgy0d{tlz~SR;0S=!m2DqaYeb)Nh)^dPzjP$N?uJN%3$PS6p zVdF4&538vl%&B#;BA&vES7^?%X+KVOu?PHAqt1z~#1Hw1>2OBp7u7#hC46F}$q^q$ z$f3`Sq*;-(BOhz%g_CWO&*3(SkzcHi{GkUBHammuvC0uT94b}9qDUIoW?maPy5HN- zA8r1`_G6rywGWemu%gZ-%0r{HXSIzcxG93wbcn5Wm@FA#8_FfGVJJ5+WrwJQ*V@v> zwh!9MQUBVGF1NeV?y*L_klSfX>QU~2nAA}?S9d%)_`8LvW9@)z+%~F}V*5yBul3S4@q#XU@vu`-KH}pIoR*bwAH-LEN&|lLMW#b zeq;ABd3Rid7$OWt@t&kM`k5q+P7@KJQz?#^>8SY!`5OW3SRJHzGm6GWjf=9^BU(ch z^P*^e)O)fugzeizu_}sIM}6UFZK2o^MLVN*!RktGtf(YTlV=^2Gqk9(n|LFV z6I{yJtx3T}Viz}w-Bc2*)Vz4&>}lb+#<7yNEaf=i`H7sgwUoQfaV}qSKiIZ!bDMe2 z?G64zUMkrXut~x~73fqv_VotDClUm-^khY0PFXv$knueY07Tt)pZa){e=T z7_S&@Xp0Wf-7|6v>c_-rg0=NE8sAWr;#3sP>3F@PJ)?@*(e!roJJI$`U~SYVvJui* zO{)+1dJ- zak^{^*pRO`Hb5H@qHWN~t982st&dkLlU7?# z>*MJcl&Nj#>F3whoUQfIXd5Bn;od4m)w8tp**ni75gdo;rDk#li484S6aU~iPkqdE zo!%t+YoXB^H4VitzY$C0W8aM>o+ouqSwWI@c+Z@op;qENq^-1a>!5;R_9VCHEY;e% z8>{top3|EX&E~{x{X6#0>KHpkNG*qf*sOEr4{z$t7qaU|O5U&--7 z6`T-U!77@GivAU;OK;|>99n3MY}YnYxGJtVn5Uk+hAk0OIE_{lQZK^4end$9`t>y- zD#hF`w6M$iF3f?l(mJd%W_YEQU5qG%RjAKo*0JXw?OV6i1gjK(b)j)x$9J{QfN!t^ zKU9tKIE>{bUFnmqOKpWNf;VTX8J-fh;FuJhyRz4!&P zHCWnrbv%6$zsAwp(sgG%?TX(mTibJb)~8yn#`SbOoryooN)*zN@bHm1xVgk#k|get zPYPEd3U`$-H`?MuXZAA0RIz!oQZH8KYxMHc28MeDXtfOu-Muj2QUASox*tEc8%wTh zxwWjcyppBXRmjAUTerjldy!UT#t97^W84syV6&@ zIYGxi%?<2}U9p#s>#PKto$z*oy*!)KWuqvlQ6twi3A8q0om2vo+x`SPkZ{npr<)+= z#M|w30-Z@X>uB|LyPZJ)Nw_0h>#=?{xJ^u?Nr{saC0}lWXbo`tAdx;yTnH;ie1(NI z(@pS4WTq&SDLWeu+$>|L&FTQRD z7q|Z;(w)S+QWE-kqHJxz!u3_&Pof7&e>qwkDyJpW^yIga?QIBT`!-a5oJ@<8mpED*E5A;r zZ<064R`LA6S9vIz4ksURv^G@!noO6IugKPBtX@Cm$nI3teN=b5H_;lToY|dbb)OBZ z+~rEaShLH;ey{#u84z<(Ck-L~VQ%hC8X9dMjRRWR6jGyH+MQN*|6F#SSR*yc=_&M9 z%8V4TVQ8spSqd#rSs`sJRJPQpzDc2tDVrRvzN*71bR^}dY!y=zsJfg&S5mGzT0>M- zsWd8ebgI+=DnU$*K{YFtW~aXGXbn((no6IgE|aZdYC=?-Q|Y_ZEsoY^s$;42W9o6) zDyGIybuE>yr`~Y12B}_8qc_sVq}kgbCc#%VCym}so9k$8s9KRmE7LxQRZfk{F*RZ? zoP5+tjhGd2nlufHv`rW>KS+&gYZ~oN+ao)#nHtq+J!n~vFeZ5YfgOk8|id2{gzaQ(WRc4L6b5jXGjfD+d@#!&7gT1^Bt|e>d!N1RmN)B zDu&>%-kw1_GIlyzgVjH0(5Z~mvQ->i0qQ?8=+BJXj@Cx%@tHIsb7H2w4dUqXS1-t< z_cK3mv<9o!WYXHqb+T0)T@BQ`GigueUPo)7`fMhh%RDbz#nI)jzLQCJGw(TCgVmF> zXiC=9EPETm*&@+Ey)cUwWqssm4OFksq77MJ$<|1=ufKYK79Ges=x7aA|B^))vo66Z zr&7%hbB=4cxR5*jU@MLD@hc8paU@r-G@@!2+*Vxw)eo|0bkEm%+C%DHW06t+rzhR% zdDm9vAw0!GaQAqt7tQE3vlqLP;>w6q=GtB+BVJWDxU{k~tGuX!1fenqM{5N>E6Bwa z@5QBUEcP%B!f70t!ZkY+8_ z3S&F7TG0v|rB;Ng6+tL!*BPz;u{ZtM`!*WGS2w0sE4oXq_}{g`@W?Irr4QZj^Ptb) zwIGkRpu8%w&}@o8xVmgxcZhw#g0}_UNUdOg5g&pNS1X#T6=Lv+R`9r#O@C#Nc+SC( z_*PFwWw|w{SQ-m2z!S#q+x8lLS!VY?M;D*Fgl{UU`^debGN*EAMREZy+j+Ml5Zr!iATqCmUrWa3!TPzZ7LK>u~*SX0J&ZBZPb6rGUU~>TC&n>J#M>^&RX>osTk)7k#NRXg81fc6d8KcJ5D?Lw_U|C{p^2j|jjFQRky z(u>Xc&jaYxfXmDo{-Kw54W!)z_YACdK2O-kBA|L*PUXoy@t&97_#3Y@s8Tqn7H1Y!&XXj@azt zyd%1@HngwXhIl7!u)Uojy2qV-ct3BU3zi$qo8${?IB7!7S0&_>sJOGabT0QA^DDLEcpja|JDFGAj&J$jaqY<~h55CoxHuAO#$P=W z5^D}bTr09S2Juwb{;2v zxYU9pgXrj>Gt8sZf^GStp1&PT zn+Jb4xZ1PSA&^3;<)Lvg}=U4KU z?A#lB+KGpp8w+St!7f(4nu+~RZr7Z)$_VW9J&lvUGv%}0Uq@*zF{n>U2!4_U(eO6{0g zM6-%!7ge|8Oa2O`F4{4Pt)(@O&UFT|)XnS_mfEA2t=xDTS41Bbtz>mezD5<(=;GIk zt9?mx2fj``WZkagvU;_MtA1cq+dF$kW_vU?t(c}4&top7CcIukZZLDm%FiJSUvtX4oF8Y~Vi?IG2O` z8@BVnPlb63&h0zlwrzW!Vx0@8TCJGoBHcy&&gG;Fu1u6dK3jjv`)+TeE3ArnuFzsE zINeDX^GMQY5&zgXEc&<2p8P8wm>CPW|Dy*lD#iFRnoxGW%-$!8$>lVqd}=xITKqyF z9zP9e3h1B*finR;^eAuz;0Zk+JQ?tUUIktX)Pvp*-UN6<&&KZyQUD+5kHHIp`p_@p zM+Yqc1N0l<(Le*}eEi5#4fwKsz?Fa>bT19jU1)!{4|E<70G;?0(XY^f(Am(vfQHa< zPZOPl4ub9podE} zUIO4Zq^`%n+kgn@Yv2n&B(y6!?>=-J=;P3D0&Sr$gD(Q@pf{saO9A}U)D>_4(>?${ zD|KCq4(<(@ptpgy0A}cg=ak5J-bg2X_W~ zKo@`q0O`;pz%Kw9&}m4T0AxZB1os27pj#t>XP|pRKMUOn=mo7qGB-o_h7N)b0Qx{{ zkl2OL+0cH_2H-j9U%~T%zR-8Uw}F1pr;z+tf&S3f!B>F+(0efuh5`eje+Hiba-cV0 zP~-s?=w0CLKrZxO;A21@v=;`82Y|;cuFb(gz#!;n!R>*3=w9FyU@-I~45%B>1<>=L z=KzJ!>%pG@L!gg0WU)PU{DLdFzA-x5MVfT7qA(4 z2|63x1Nawo88{#KH}nYb%M8#nz!QL1pg#e>54;M!3A`2<0euv_2N(%`1AGpsf==O|pmV^zftk=Rf=hr|&=bI;f!WaSgWqO=b`K?51^o_mV`y(+ z4s=^^1n@3&GB_5P3vB`S0p>vu1D68xp(lc01KxxF0Q?TH0D2vGIq*I--hid=fe)b1 zgHHe-Lf-@51QtT;n&6jTz#`}--~iww=uY4^z{k)Zg42M-&>O)kfF;oTz`KD@pf7+= z0!yLqgKq(!LhGC2XJx==&`rUCz%uB;U^B2BdNg<_umXBIcnYu*dNKGt;B)A2z+V8X zpbvw00jr@egU8;^b_>=&^@3#0b8N*q9_dqwm}bUf&WJUdOP%1=#jtJ_wxwodz6&{uW#a z9ELss-U}RoPHqif&_|*BLiYiFfZh(S0FFT)10Ml?gibdSU57pnZGj#DoPhowJRCR) zeFS_E_z4<6oujMJKSOti#)}|y3i@ks9&j3Z4|peV2D(Ee(Rt{z&KKdJOnA;3o79@I2raG~XU$0Qz@m*A5t~*!}~$ z9<(0dNcw*&cyK5-1n|#b1$Y*WF5oN}UBO;3x`7XamEb8TRDlyv=nno1tOl>bP9ESQ z?8NH70cQ384rcY=2DAF_f?53!z^r}_m9hF2V3^1a%<6Z?2diHLX7xV