From c1824b53872c5f6cb511a6a379a4db9d6bf113ba Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 30 Mar 2015 09:31:49 +0800 Subject: [PATCH] fix parameter name in API, update petstore sample --- bin/csharp-petstore.sh | 9 +- .../languages/CSharpClientCodegen.java | 6 +- .../src/main/resources/csharp/api.mustache | 14 +- .../csharp/CSharpPetstoreCodegen.scala | 45 -- samples/client/petstore/csharp/JsonUtil.cs | 2 - .../petstore/csharp/Newtonsoft.Json.dll | Bin 525059 -> 0 bytes .../csharp/bin/Com.Wordnik.Petstore.dll | Bin 17920 -> 0 bytes samples/client/petstore/csharp/compile.bat | 2 +- samples/client/petstore/csharp/compile.cs | 2 - .../src/Com/Wordnik/Petstore/Api/PetApi.cs | 348 ------------- .../src/Com/Wordnik/Petstore/Api/StoreApi.cs | 130 ----- .../src/Com/Wordnik/Petstore/Api/UserApi.cs | 310 ------------ .../src/Com/Wordnik/Petstore/ApiException.cs | 21 - .../src/Com/Wordnik/Petstore/ApiInvoker.cs | 100 ---- .../Com/Wordnik/Petstore/Model/Category.cs | 21 - .../src/Com/Wordnik/Petstore/Model/Order.cs | 31 -- .../src/Com/Wordnik/Petstore/Model/Pet.cs | 35 -- .../src/Com/Wordnik/Petstore/Model/Tag.cs | 21 - .../src/Com/Wordnik/Petstore/Model/User.cs | 40 -- .../src/main/csharp/io/swagger/Api/PetApi.cs | 110 ++--- .../main/csharp/io/swagger/Api/StoreApi.cs | 28 +- .../src/main/csharp/io/swagger/Api/UserApi.cs | 56 +-- .../main/csharp/io/swagger/Model/Category.cs | 8 +- .../src/main/csharp/io/swagger/Model/Order.cs | 24 +- .../src/main/csharp/io/swagger/Model/Pet.cs | 24 +- .../src/main/csharp/io/swagger/Model/Tag.cs | 8 +- .../src/main/csharp/io/swagger/Model/User.cs | 32 +- .../csharp/io/swagger/client/api/PetApi.cs | 459 ------------------ .../csharp/io/swagger/client/api/StoreApi.cs | 224 --------- .../csharp/io/swagger/client/api/UserApi.cs | 422 ---------------- .../io/swagger/client/model/Category.cs | 34 -- .../csharp/io/swagger/client/model/Order.cs | 63 --- .../csharp/io/swagger/client/model/Pet.cs | 63 --- .../csharp/io/swagger/client/model/Tag.cs | 34 -- .../csharp/io/swagger/client/model/User.cs | 77 --- 35 files changed, 159 insertions(+), 2644 deletions(-) delete mode 100644 samples/client/petstore/csharp/CSharpPetstoreCodegen.scala delete mode 100644 samples/client/petstore/csharp/JsonUtil.cs delete mode 100644 samples/client/petstore/csharp/Newtonsoft.Json.dll delete mode 100644 samples/client/petstore/csharp/bin/Com.Wordnik.Petstore.dll delete mode 100644 samples/client/petstore/csharp/compile.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/PetApi.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/StoreApi.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/UserApi.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiException.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiInvoker.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Category.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Order.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Pet.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Tag.cs delete mode 100644 samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/User.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/PetApi.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/StoreApi.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/UserApi.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Category.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Order.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Pet.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Tag.cs delete mode 100644 samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/User.cs diff --git a/bin/csharp-petstore.sh b/bin/csharp-petstore.sh index 47efa2b3038b..a72a6cf84f0c 100755 --- a/bin/csharp-petstore.sh +++ b/bin/csharp-petstore.sh @@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then APP_DIR=`cd "${APP_DIR}"; pwd` fi -root=./modules/swagger-codegen-distribution/pom.xml - -# gets version of swagger-codegen -version=$(sed '//,/<\/project>/d;//!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*\([^<]*\).*,\1,g') - -executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar" +executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar" if [ ! -f "$executable" ] then @@ -31,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l csharp -o samples/client/petstore/csharp" +ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l csharp -o samples/client/petstore/csharp" java $JAVA_OPTS -jar $executable $ags diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/CSharpClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/CSharpClientCodegen.java index 0fc431139bbe..ffd2438de971 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/CSharpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/CSharpClientCodegen.java @@ -46,7 +46,7 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig supportingFiles.add(new SupportingFile("apiException.mustache", (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiException.cs")); supportingFiles.add(new SupportingFile("Newtonsoft.Json.dll", "bin", "Newtonsoft.Json.dll")); - supportingFiles.add(new SupportingFile("compile.mustache", "", "compile.cs")); + supportingFiles.add(new SupportingFile("compile.mustache", "", "compile.bat")); languageSpecificPrimitives = new HashSet( Arrays.asList( @@ -70,7 +70,9 @@ public class CSharpClientCodegen extends DefaultCodegen implements CodegenConfig typeMapping.put("double", "double?"); typeMapping.put("number", "double?"); typeMapping.put("Date", "DateTime"); - typeMapping.put("file", "byte[]?"); + typeMapping.put("file", "byte[]"); + typeMapping.put("array", "List"); + typeMapping.put("map", "Dictionary"); } diff --git a/modules/swagger-codegen/src/main/resources/csharp/api.mustache b/modules/swagger-codegen/src/main/resources/csharp/api.mustache index 3d556fa72f85..4a58ae943e08 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api.mustache @@ -40,7 +40,7 @@ /// public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { // create path and map variables - var path = "{{path}}".Replace("{format}","json"){{#pathParams}}.Replace("{" + "{{paramName}}" + "}", apiInvoker.escapeString({{{paramName}}}.ToString())){{/pathParams}}; + var path = "{{path}}".Replace("{format}","json"){{#pathParams}}.Replace("{" + "{{baseName}}" + "}", apiInvoker.escapeString({{{paramName}}}.ToString())){{/pathParams}}; // query params var queryParams = new Dictionary(); @@ -56,19 +56,19 @@ {{#queryParams}}if ({{paramName}} != null){ string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); - queryParams.Add("{{paramName}}", paramStr); + queryParams.Add("{{baseName}}", paramStr); } {{/queryParams}} - {{#headerParams}}headerParams.Add("{{paramName}}", {{paramName}}); + {{#headerParams}}headerParams.Add("{{baseName}}", {{paramName}}); {{/headerParams}} {{#formParams}}if ({{paramName}} != null){ if({{paramName}} is byte[]) { - formParams.Add("{{paramName}}", {{paramName}}); + formParams.Add("{{baseName}}", {{paramName}}); } else { string paramStr = ({{paramName}} is DateTime) ? ((DateTime)(object){{paramName}}).ToString("u") : Convert.ToString({{paramName}}); - formParams.Add("{{paramName}}", paramStr); + formParams.Add("{{baseName}}", paramStr); } } {{/formParams}} @@ -78,7 +78,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return {{#returnType}}((object)response) as {{{returnType}}}{{/returnType}}; } else { - var response = apiInvoker.invokeAPI(basePath, path, "{{httpMethod}}", queryParams, {{#bodyParam}}{{bodyParam}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "{{httpMethod}}", queryParams, {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}, headerParams, formParams); if(response != null){ return {{#returnType}}({{{returnType}}}) ApiInvoker.deserialize(response, typeof({{{returnType}}})){{/returnType}}; } @@ -98,4 +98,4 @@ {{/operation}} } {{/operations}} - } \ No newline at end of file + } diff --git a/samples/client/petstore/csharp/CSharpPetstoreCodegen.scala b/samples/client/petstore/csharp/CSharpPetstoreCodegen.scala deleted file mode 100644 index 4dcab9050d85..000000000000 --- a/samples/client/petstore/csharp/CSharpPetstoreCodegen.scala +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2014 Wordnik, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import com.wordnik.swagger.codegen.BasicCSharpGenerator - -object CSharpPetstoreCodegen extends BasicCSharpGenerator { - def main(args: Array[String]) = generateClient(args) - - // location of templates - override def templateDir = "csharp" - - // where to write generated code - override def destinationDir = "samples/client/petstore/csharp/src" - - // package for api invoker, error files - override def invokerPackage = Some("Com.Wordnik.Petstore") - - // package for models - override def modelPackage = Some("Com.Wordnik.Petstore.Model") - - // package for api classes - override def apiPackage = Some("Com.Wordnik.Petstore.Api") - - // supporting classes - override def supportingFiles = - List( - ("apiInvoker.mustache", destinationDir + java.io.File.separator + invokerPackage.get.replace(".", java.io.File.separator) + java.io.File.separator, "ApiInvoker.cs"), - ("apiException.mustache", destinationDir + java.io.File.separator + invokerPackage.get.replace(".", java.io.File.separator) + java.io.File.separator, "ApiException.cs"), - ("Newtonsoft.Json.dll", "samples/client/petstore/csharp/bin", "Newtonsoft.Json.dll"), - ("compile.mustache", "samples/client/petstore/csharp", "compile.bat")) -} - diff --git a/samples/client/petstore/csharp/JsonUtil.cs b/samples/client/petstore/csharp/JsonUtil.cs deleted file mode 100644 index 18a85febb708..000000000000 --- a/samples/client/petstore/csharp/JsonUtil.cs +++ /dev/null @@ -1,2 +0,0 @@ -SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 -%CSCPATH%\csc /reference:bin/Newtonsoft.Json.dll /target:library /out:bin/io.swagger.client.dll /recurse:src\*.cs /doc:bin/io.swagger.client.xml \ No newline at end of file diff --git a/samples/client/petstore/csharp/Newtonsoft.Json.dll b/samples/client/petstore/csharp/Newtonsoft.Json.dll deleted file mode 100644 index 687d26fd9e0e1e587da12787a7aa255ec00704cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525059 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

t4L>n9fgv5 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 diff --git a/samples/client/petstore/csharp/compile.bat b/samples/client/petstore/csharp/compile.bat index c62b990f5c5d..18a85febb708 100644 --- a/samples/client/petstore/csharp/compile.bat +++ b/samples/client/petstore/csharp/compile.bat @@ -1,2 +1,2 @@ SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 -%CSCPATH%\csc /reference:bin/Newtonsoft.Json.dll /target:library /out:bin/Com.Wordnik.Petstore.dll /recurse:src\*.cs /doc:bin/Com.Wordnik.Petstore.xml +%CSCPATH%\csc /reference:bin/Newtonsoft.Json.dll /target:library /out:bin/io.swagger.client.dll /recurse:src\*.cs /doc:bin/io.swagger.client.xml \ No newline at end of file diff --git a/samples/client/petstore/csharp/compile.cs b/samples/client/petstore/csharp/compile.cs deleted file mode 100644 index 18a85febb708..000000000000 --- a/samples/client/petstore/csharp/compile.cs +++ /dev/null @@ -1,2 +0,0 @@ -SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 -%CSCPATH%\csc /reference:bin/Newtonsoft.Json.dll /target:library /out:bin/io.swagger.client.dll /recurse:src\*.cs /doc:bin/io.swagger.client.xml \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/PetApi.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/PetApi.cs deleted file mode 100644 index acb3abb2d666..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/PetApi.cs +++ /dev/null @@ -1,348 +0,0 @@ - using System; - using System.Collections.Generic; - using Com.Wordnik.Petstore; - using Com.Wordnik.Petstore.Model; - namespace Com.Wordnik.Petstore.Api { - public class PetApi { - string basePath = "http://petstore.swagger.wordnik.com/api"; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - ///

- /// Find pet by ID Returns a pet based on ID - /// - /// ID of pet that needs to be fetched - /// - public Pet getPetById (long petId) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (petId == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (Pet) ApiInvoker.deserialize(response, typeof(Pet)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Deletes a pet - /// - /// Pet id to delete - /// - public void deletePet (string petId) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (petId == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// partial updates to a pet - /// - /// ID of pet that needs to be fetched - /// Pet object that needs to be added to the store - /// - public List partialUpdate (string petId, Pet body) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (petId == null || body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "PATCH", queryParams, body, headerParams); - if(response != null){ - return (List) ApiInvoker.deserialize(response, typeof(List)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Updates a pet in the store with form data - /// - /// ID of pet that needs to be updated - /// Updated name of the pet - /// Updated status of the pet - /// - public void updatePetWithForm (string petId, string name, string status) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (petId == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, null, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// uploads an image - /// - /// Additional data to pass to server - /// file to upload - /// - public void uploadFile (string additionalMetadata, File body) { - // create path and map variables - var path = "/pet/uploadImage".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Add a new pet to the store - /// - /// Pet object that needs to be added to the store - /// - public void addPet (Pet body) { - // create path and map variables - var path = "/pet".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Update an existing pet - /// - /// Pet object that needs to be updated in the store - /// - public void updatePet (Pet body) { - // create path and map variables - var path = "/pet".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Finds Pets by status Multiple status values can be provided with comma seperated strings - /// - /// Status values that need to be considered for filter - /// - public List findPetsByStatus (string status) { - // create path and map variables - var path = "/pet/findByStatus".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (status == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - if (status != null){ - paramStr = (status != null && status is DateTime) ? ((DateTime)(object)status).ToString("u") : Convert.ToString(status); - queryParams.Add("status", paramStr); - } - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (List) ApiInvoker.deserialize(response, typeof(List)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Finds Pets by tags Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. - /// - /// Tags to filter by - /// - public List findPetsByTags (string tags) { - // create path and map variables - var path = "/pet/findByTags".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (tags == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - if (tags != null){ - paramStr = (tags != null && tags is DateTime) ? ((DateTime)(object)tags).ToString("u") : Convert.ToString(tags); - queryParams.Add("tags", paramStr); - } - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (List) ApiInvoker.deserialize(response, typeof(List)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/StoreApi.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/StoreApi.cs deleted file mode 100644 index 22c36a411caf..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/StoreApi.cs +++ /dev/null @@ -1,130 +0,0 @@ - using System; - using System.Collections.Generic; - using Com.Wordnik.Petstore; - using Com.Wordnik.Petstore.Model; - namespace Com.Wordnik.Petstore.Api { - public class StoreApi { - string basePath = "http://petstore.swagger.wordnik.com/api"; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - /// - /// Find purchase order by ID For valid response try integer IDs with value <= 5. Anything above 5 or nonintegers will generate API errors - /// - /// ID of pet that needs to be fetched - /// - public Order getOrderById (string orderId) { - // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (orderId == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (Order) ApiInvoker.deserialize(response, typeof(Order)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - /// - /// ID of the order that needs to be deleted - /// - public void deleteOrder (string orderId) { - // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (orderId == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Place an order for a pet - /// - /// order placed for purchasing the pet - /// - public void placeOrder (Order body) { - // create path and map variables - var path = "/store/order".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/UserApi.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/UserApi.cs deleted file mode 100644 index 23a58501579b..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Api/UserApi.cs +++ /dev/null @@ -1,310 +0,0 @@ - using System; - using System.Collections.Generic; - using Com.Wordnik.Petstore; - using Com.Wordnik.Petstore.Model; - namespace Com.Wordnik.Petstore.Api { - public class UserApi { - string basePath = "http://petstore.swagger.wordnik.com/api"; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - /// - /// Updated user This can only be done by the logged in user. - /// - /// name that need to be deleted - /// Updated user object - /// - public void updateUser (string username, User body) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (username == null || body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Delete user This can only be done by the logged in user. - /// - /// The name that needs to be deleted - /// - public void deleteUser (string username) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (username == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Get user by user name - /// - /// The name that needs to be fetched. Use user1 for testing. - /// - public User getUserByName (string username) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (username == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (User) ApiInvoker.deserialize(response, typeof(User)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Logs user into the system - /// - /// The user name for login - /// The password for login in clear text - /// - public string loginUser (string username, string password) { - // create path and map variables - var path = "/user/login".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (username == null || password == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - if (username != null){ - paramStr = (username != null && username is DateTime) ? ((DateTime)(object)username).ToString("u") : Convert.ToString(username); - queryParams.Add("username", paramStr); - } - if (password != null){ - paramStr = (password != null && password is DateTime) ? ((DateTime)(object)password).ToString("u") : Convert.ToString(password); - queryParams.Add("password", paramStr); - } - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return (string) ApiInvoker.deserialize(response, typeof(string)); - } - else { - return null; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - /// - /// Logs out current logged in user session - /// - /// - public void logoutUser () { - // create path and map variables - var path = "/user/logout".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Create user This can only be done by the logged in user. - /// - /// Created user object - /// - public void createUser (User body) { - // create path and map variables - var path = "/user".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Creates list of users with given input array - /// - /// List of user object - /// - public void createUsersWithArrayInput (List body) { - // create path and map variables - var path = "/user/createWithArray".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - /// - /// Creates list of users with given list input - /// - /// List of user object - /// - public void createUsersWithListInput (List body) { - // create path and map variables - var path = "/user/createWithList".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - - // verify required params are set - if (body == null ) { - throw new ApiException(400, "missing required params"); - } - string paramStr = null; - try { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, body, headerParams); - if(response != null){ - return ; - } - else { - return ; - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiException.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiException.cs deleted file mode 100644 index 0da402468673..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiException.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; - -namespace Com.Wordnik.Petstore { - public class ApiException : Exception { - - private int errorCode = 0; - - public ApiException() {} - - public int ErrorCode { - get - { - return errorCode; - } - } - - public ApiException(int errorCode, string message) : base(message) { - this.errorCode = errorCode; - } - } -} diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiInvoker.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiInvoker.cs deleted file mode 100644 index b61fec1687cb..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/ApiInvoker.cs +++ /dev/null @@ -1,100 +0,0 @@ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Net; - using System.Text; - using Newtonsoft.Json; - - namespace Com.Wordnik.Petstore { - public class ApiInvoker { - private static readonly ApiInvoker _instance = new ApiInvoker(); - private Dictionary defaultHeaderMap = new Dictionary(); - - public static ApiInvoker GetInstance() { - return _instance; - } - - public void addDefaultHeader(string key, string value) { - defaultHeaderMap.Add(key, value); - } - - public string escapeString(string str) { - return str; - } - - public static object deserialize(string json, Type type) { - try - { - return JsonConvert.DeserializeObject(json, type); - } - catch (IOException e) { - throw new ApiException(500, e.Message); - } - - } - - public static string serialize(object obj) { - try - { - return obj != null ? JsonConvert.SerializeObject(obj) : null; - } - catch (Exception e) { - throw new ApiException(500, e.Message); - } - } - - public string invokeAPI(string host, string path, string method, Dictionary queryParams, object body, Dictionary headerParams) { - var b = new StringBuilder(); - - foreach (var queryParamItem in queryParams) - { - var value = queryParamItem.Value; - if (value == null) continue; - b.Append(b.ToString().Length == 0 ? "?" : "&"); - b.Append(escapeString(queryParamItem.Key)).Append("=").Append(escapeString(value)); - } - - var querystring = b.ToString(); - - host = host.EndsWith("/") ? host.Substring(0, host.Length - 1) : host; - - var client = WebRequest.Create(host + path + querystring); - client.ContentType = "application/json"; - client.Method = method; - - foreach (var headerParamsItem in headerParams) - { - client.Headers.Add(headerParamsItem.Key, headerParamsItem.Value); - } - foreach (var defaultHeaderMapItem in defaultHeaderMap.Where(defaultHeaderMapItem => !headerParams.ContainsKey(defaultHeaderMapItem.Key))) - { - client.Headers.Add(defaultHeaderMapItem.Key, defaultHeaderMapItem.Value); - } - - switch (method) - { - case "GET": - break; - case "POST": - case "PUT": - case "DELETE": - var swRequestWriter = new StreamWriter(client.GetRequestStream()); - swRequestWriter.Write(serialize(body)); - swRequestWriter.Close(); - break; - default: - throw new ApiException(500, "unknown method type " + method); - } - var webResponse = (HttpWebResponse) client.GetResponse(); - if (webResponse.StatusCode != HttpStatusCode.OK) throw new ApiException((int) webResponse.StatusCode, webResponse.StatusDescription); - - var responseReader = new StreamReader(webResponse.GetResponseStream()); - var responseData = responseReader.ReadToEnd(); - responseReader.Close(); - return responseData; - } - - } - } - diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Category.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Category.cs deleted file mode 100644 index dfad92a046fa..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Category.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace Com.Wordnik.Petstore.Model { - public class Category { - public long id { get; set; } - - public string name { get; set; } - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Category {\n"); - sb.Append(" id: ").Append(id).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); - sb.Append("}\n"); - return sb.ToString(); - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Order.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Order.cs deleted file mode 100644 index ae5012193e77..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Order.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace Com.Wordnik.Petstore.Model { - public class Order { - public long id { get; set; } - - public long petId { get; set; } - - public int quantity { get; set; } - - /* Order Status */ - public string status { get; set; } - - public DateTime shipDate { get; set; } - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Order {\n"); - sb.Append(" id: ").Append(id).Append("\n"); - sb.Append(" petId: ").Append(petId).Append("\n"); - sb.Append(" quantity: ").Append(quantity).Append("\n"); - sb.Append(" status: ").Append(status).Append("\n"); - sb.Append(" shipDate: ").Append(shipDate).Append("\n"); - sb.Append("}\n"); - return sb.ToString(); - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Pet.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Pet.cs deleted file mode 100644 index 8bd8f2606012..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Pet.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace Com.Wordnik.Petstore.Model { - public class Pet { - /* unique identifier for the pet */ - public long id { get; set; } - - public Category category { get; set; } - - public string name { get; set; } - - public List photoUrls { get; set; } - - public List tags { get; set; } - - /* pet status in the store */ - public string status { get; set; } - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Pet {\n"); - sb.Append(" id: ").Append(id).Append("\n"); - sb.Append(" category: ").Append(category).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); - sb.Append(" photoUrls: ").Append(photoUrls).Append("\n"); - sb.Append(" tags: ").Append(tags).Append("\n"); - sb.Append(" status: ").Append(status).Append("\n"); - sb.Append("}\n"); - return sb.ToString(); - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Tag.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Tag.cs deleted file mode 100644 index 61187fbd7724..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/Tag.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace Com.Wordnik.Petstore.Model { - public class Tag { - public long id { get; set; } - - public string name { get; set; } - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Tag {\n"); - sb.Append(" id: ").Append(id).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); - sb.Append("}\n"); - return sb.ToString(); - } - } - } diff --git a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/User.cs b/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/User.cs deleted file mode 100644 index bbbd6eaccc36..000000000000 --- a/samples/client/petstore/csharp/src/Com/Wordnik/Petstore/Model/User.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace Com.Wordnik.Petstore.Model { - public class User { - public long id { get; set; } - - public string firstName { get; set; } - - public string username { get; set; } - - public string lastName { get; set; } - - public string email { get; set; } - - public string password { get; set; } - - public string phone { get; set; } - - /* User Status */ - public int userStatus { get; set; } - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class User {\n"); - sb.Append(" id: ").Append(id).Append("\n"); - sb.Append(" firstName: ").Append(firstName).Append("\n"); - sb.Append(" username: ").Append(username).Append("\n"); - sb.Append(" lastName: ").Append(lastName).Append("\n"); - sb.Append(" email: ").Append(email).Append("\n"); - sb.Append(" password: ").Append(password).Append("\n"); - sb.Append(" phone: ").Append(phone).Append("\n"); - sb.Append(" userStatus: ").Append(userStatus).Append("\n"); - sb.Append("}\n"); - return sb.ToString(); - } - } - } diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs index 6e0996709caa..3230958f3af3 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/PetApi.cs @@ -38,10 +38,10 @@ /// /// Update an existing pet /// - /// Pet object that needs to be added to the store + /// Pet object that needs to be added to the store /// - public void updatePet (Pet body) { + public void updatePet (Pet Body) { // create path and map variables var path = "/pet".Replace("{format}","json"); @@ -63,7 +63,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, com.wordnik.swagger.codegen.CodegenParameter@7ea4461e, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -85,10 +85,10 @@ /// /// Add a new pet to the store /// - /// Pet object that needs to be added to the store + /// Pet object that needs to be added to the store /// - public void addPet (Pet body) { + public void addPet (Pet Body) { // create path and map variables var path = "/pet".Replace("{format}","json"); @@ -110,7 +110,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@52f79c86, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -132,10 +132,10 @@ /// /// Finds Pets by status Multiple status values can be provided with comma seperated strings /// - /// Status values that need to be considered for filter + /// Status values that need to be considered for filter /// - public array findPetsByStatus (array status) { + public List findPetsByStatus (List Status) { // create path and map variables var path = "/pet/findByStatus".Replace("{format}","json"); @@ -146,8 +146,8 @@ - if (status != null){ - string paramStr = (status is DateTime) ? ((DateTime)(object)status).ToString("u") : Convert.ToString(status); + if (Status != null){ + string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); queryParams.Add("status", paramStr); } @@ -157,13 +157,13 @@ try { - if (typeof(array) == typeof(byte[])) { + if (typeof(List) == typeof(byte[])) { var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as array; + return ((object)response) as List; } else { var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); if(response != null){ - return (array) ApiInvoker.deserialize(response, typeof(array)); + return (List) ApiInvoker.deserialize(response, typeof(List)); } else { return null; @@ -183,10 +183,10 @@ /// /// Finds Pets by tags Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. /// - /// Tags to filter by + /// Tags to filter by /// - public array findPetsByTags (array tags) { + public List findPetsByTags (List Tags) { // create path and map variables var path = "/pet/findByTags".Replace("{format}","json"); @@ -197,8 +197,8 @@ - if (tags != null){ - string paramStr = (tags is DateTime) ? ((DateTime)(object)tags).ToString("u") : Convert.ToString(tags); + if (Tags != null){ + string paramStr = (Tags is DateTime) ? ((DateTime)(object)Tags).ToString("u") : Convert.ToString(Tags); queryParams.Add("tags", paramStr); } @@ -208,13 +208,13 @@ try { - if (typeof(array) == typeof(byte[])) { + if (typeof(List) == typeof(byte[])) { var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as array; + return ((object)response) as List; } else { var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); if(response != null){ - return (array) ApiInvoker.deserialize(response, typeof(array)); + return (List) ApiInvoker.deserialize(response, typeof(List)); } else { return null; @@ -234,12 +234,12 @@ /// /// Find pet by ID Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions /// - /// ID of pet that needs to be fetched + /// ID of pet that needs to be fetched /// - public Pet getPetById (long? petId) { + public Pet getPetById (long? PetId) { // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); + var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); // query params var queryParams = new Dictionary(); @@ -281,14 +281,14 @@ /// /// Updates a pet in the store with form data /// - /// ID of pet that needs to be updated - /// Updated name of the pet - /// Updated status of the pet + /// ID of pet that needs to be updated + /// 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) { // 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.escapeString(PetId.ToString())); // query params var queryParams = new Dictionary(); @@ -301,19 +301,19 @@ - if (name != null){ - if(name is byte[]) { - formParams.Add("name", name); + if (Name != null){ + if(Name is byte[]) { + formParams.Add("name", Name); } else { - string paramStr = (name is DateTime) ? ((DateTime)(object)name).ToString("u") : Convert.ToString(name); + string paramStr = (Name is DateTime) ? ((DateTime)(object)Name).ToString("u") : Convert.ToString(Name); formParams.Add("name", paramStr); } } - if (status != null){ - if(status is byte[]) { - formParams.Add("status", status); + if (Status != null){ + if(Status is byte[]) { + formParams.Add("status", Status); } else { - string paramStr = (status is DateTime) ? ((DateTime)(object)status).ToString("u") : Convert.ToString(status); + string paramStr = (Status is DateTime) ? ((DateTime)(object)Status).ToString("u") : Convert.ToString(Status); formParams.Add("status", paramStr); } } @@ -346,13 +346,13 @@ /// /// Deletes a pet /// - /// - /// Pet id to delete + /// + /// Pet id to delete /// - public void deletePet (string apiKey, long? petId) { + public void deletePet (string ApiKey, long? PetId) { // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); + var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); // query params var queryParams = new Dictionary(); @@ -363,7 +363,7 @@ - headerParams.Add("apiKey", apiKey); + headerParams.Add("api_key", ApiKey); @@ -395,14 +395,14 @@ /// /// uploads an image /// - /// ID of pet to update - /// Additional data to pass to server - /// file to upload + /// ID of pet to update + /// Additional data to pass to server + /// file to upload /// - public void uploadFile (long? petId, string additionalMetadata, file file) { + public void uploadFile (long? PetId, string AdditionalMetadata, byte[] File) { // create path and map variables - var path = "/pet/{petId}/uploadImage".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); + var path = "/pet/{petId}/uploadImage".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(PetId.ToString())); // query params var queryParams = new Dictionary(); @@ -415,19 +415,19 @@ - if (additionalMetadata != null){ - if(additionalMetadata is byte[]) { - formParams.Add("additionalMetadata", additionalMetadata); + if (AdditionalMetadata != null){ + if(AdditionalMetadata is byte[]) { + formParams.Add("additionalMetadata", AdditionalMetadata); } else { - string paramStr = (additionalMetadata is DateTime) ? ((DateTime)(object)additionalMetadata).ToString("u") : Convert.ToString(additionalMetadata); + string paramStr = (AdditionalMetadata is DateTime) ? ((DateTime)(object)AdditionalMetadata).ToString("u") : Convert.ToString(AdditionalMetadata); formParams.Add("additionalMetadata", paramStr); } } - if (file != null){ - if(file is byte[]) { - formParams.Add("file", file); + if (File != null){ + if(File is byte[]) { + formParams.Add("file", File); } else { - string paramStr = (file is DateTime) ? ((DateTime)(object)file).ToString("u") : Convert.ToString(file); + string paramStr = (File is DateTime) ? ((DateTime)(object)File).ToString("u") : Convert.ToString(File); formParams.Add("file", paramStr); } } @@ -458,4 +458,4 @@ } - } \ No newline at end of file + } diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs index e939fea0dacc..55ee956e1af3 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/StoreApi.cs @@ -39,7 +39,7 @@ /// /// - public map getInventory () { + public Dictionary getInventory () { // create path and map variables var path = "/store/inventory".Replace("{format}","json"); @@ -57,13 +57,13 @@ try { - if (typeof(map) == typeof(byte[])) { + if (typeof(Dictionary) == typeof(byte[])) { var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as map; + return ((object)response) as Dictionary; } else { var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); if(response != null){ - return (map) ApiInvoker.deserialize(response, typeof(map)); + return (Dictionary) ApiInvoker.deserialize(response, typeof(Dictionary)); } else { return null; @@ -83,10 +83,10 @@ /// /// Place an order for a pet /// - /// order placed for purchasing the pet + /// order placed for purchasing the pet /// - public Order placeOrder (Order body) { + public Order placeOrder (Order Body) { // create path and map variables var path = "/store/order".Replace("{format}","json"); @@ -108,7 +108,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ((object)response) as Order; } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@13887906, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, Body, headerParams, formParams); if(response != null){ return (Order) ApiInvoker.deserialize(response, typeof(Order)); } @@ -130,12 +130,12 @@ /// /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions /// - /// ID of pet that needs to be fetched + /// ID of pet that needs to be fetched /// - public Order getOrderById (string orderId) { + public Order getOrderById (string OrderId) { // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); + var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(OrderId.ToString())); // query params var queryParams = new Dictionary(); @@ -177,12 +177,12 @@ /// /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors /// - /// ID of the order that needs to be deleted + /// ID of the order that needs to be deleted /// - public void deleteOrder (string orderId) { + public void deleteOrder (string OrderId) { // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); + var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(OrderId.ToString())); // query params var queryParams = new Dictionary(); @@ -222,4 +222,4 @@ } - } \ No newline at end of file + } diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs index 4600b27af1ca..cfbcb5feeb97 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Api/UserApi.cs @@ -37,10 +37,10 @@ /// /// Create user This can only be done by the logged in user. /// - /// Created user object + /// Created user object /// - public void createUser (User body) { + public void createUser (User Body) { // create path and map variables var path = "/user".Replace("{format}","json"); @@ -62,7 +62,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@76995893, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -84,10 +84,10 @@ /// /// Creates list of users with given input array /// - /// List of user object + /// List of user object /// - public void createUsersWithArrayInput (array body) { + public void createUsersWithArrayInput (List Body) { // create path and map variables var path = "/user/createWithArray".Replace("{format}","json"); @@ -109,7 +109,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@4d8657b9, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -131,10 +131,10 @@ /// /// Creates list of users with given input array /// - /// List of user object + /// List of user object /// - public void createUsersWithListInput (array body) { + public void createUsersWithListInput (List Body) { // create path and map variables var path = "/user/createWithList".Replace("{format}","json"); @@ -156,7 +156,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@2ee95a72, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -178,11 +178,11 @@ /// /// Logs user into the system /// - /// The user name for login - /// The password for login in clear text + /// The user name for login + /// The password for login in clear text /// - public string loginUser (string username, string password) { + public string loginUser (string Username, string Password) { // create path and map variables var path = "/user/login".Replace("{format}","json"); @@ -193,12 +193,12 @@ - if (username != null){ - string paramStr = (username is DateTime) ? ((DateTime)(object)username).ToString("u") : Convert.ToString(username); + if (Username != null){ + string paramStr = (Username is DateTime) ? ((DateTime)(object)Username).ToString("u") : Convert.ToString(Username); queryParams.Add("username", paramStr); } - if (password != null){ - string paramStr = (password is DateTime) ? ((DateTime)(object)password).ToString("u") : Convert.ToString(password); + if (Password != null){ + string paramStr = (Password is DateTime) ? ((DateTime)(object)Password).ToString("u") : Convert.ToString(Password); queryParams.Add("password", paramStr); } @@ -280,12 +280,12 @@ /// /// Get user by user name /// - /// The name that needs to be fetched. Use user1 for testing. + /// The name that needs to be fetched. Use user1 for testing. /// - public User getUserByName (string username) { + public User getUserByName (string Username) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); // query params var queryParams = new Dictionary(); @@ -327,13 +327,13 @@ /// /// Updated user This can only be done by the logged in user. /// - /// name that need to be deleted - /// Updated user object + /// name that need to be deleted + /// Updated user object /// - public void updateUser (string username, User body) { + public void updateUser (string Username, User Body) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); // query params var queryParams = new Dictionary(); @@ -353,7 +353,7 @@ var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); return ; } else { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, com.wordnik.swagger.codegen.CodegenParameter@5a310a6d, headerParams, formParams); + var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, Body, headerParams, formParams); if(response != null){ return ; } @@ -375,12 +375,12 @@ /// /// Delete user This can only be done by the logged in user. /// - /// The name that needs to be deleted + /// The name that needs to be deleted /// - public void deleteUser (string username) { + public void deleteUser (string Username) { // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); + var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(Username.ToString())); // query params var queryParams = new Dictionary(); @@ -420,4 +420,4 @@ } - } \ No newline at end of file + } diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Category.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Category.cs index e4e220acd86e..bfe1c0c4be82 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Category.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Category.cs @@ -8,12 +8,12 @@ namespace io.swagger.Model { - public long? id { get; set; } + public long? Id { get; set; } - public string name { get; set; } + public string Name { get; set; } @@ -21,9 +21,9 @@ namespace io.swagger.Model { var sb = new StringBuilder(); sb.Append("class Category {\n"); - sb.Append(" id: ").Append(id).Append("\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append("}\n"); return sb.ToString(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Order.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Order.cs index 04ac393afe3c..20a6d7367ddc 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Order.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Order.cs @@ -8,33 +8,33 @@ namespace io.swagger.Model { - public long? id { get; set; } + public long? Id { get; set; } - public long? petId { get; set; } + public long? PetId { get; set; } - public int? quantity { get; set; } + public int? Quantity { get; set; } - public DateTime shipDate { get; set; } + public DateTime ShipDate { get; set; } /* Order Status */ - public string status { get; set; } + public string Status { get; set; } - public bool? complete { get; set; } + public bool? Complete { get; set; } @@ -42,17 +42,17 @@ namespace io.swagger.Model { var sb = new StringBuilder(); sb.Append("class Order {\n"); - sb.Append(" id: ").Append(id).Append("\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); - sb.Append(" petId: ").Append(petId).Append("\n"); + sb.Append(" PetId: ").Append(PetId).Append("\n"); - sb.Append(" quantity: ").Append(quantity).Append("\n"); + sb.Append(" Quantity: ").Append(Quantity).Append("\n"); - sb.Append(" shipDate: ").Append(shipDate).Append("\n"); + sb.Append(" ShipDate: ").Append(ShipDate).Append("\n"); - sb.Append(" status: ").Append(status).Append("\n"); + sb.Append(" Status: ").Append(Status).Append("\n"); - sb.Append(" complete: ").Append(complete).Append("\n"); + sb.Append(" Complete: ").Append(Complete).Append("\n"); sb.Append("}\n"); return sb.ToString(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Pet.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Pet.cs index c99f945fc73a..b0f3573b78c3 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Pet.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Pet.cs @@ -8,33 +8,33 @@ namespace io.swagger.Model { - public long? id { get; set; } + public long? Id { get; set; } - public Category category { get; set; } + public Category Category { get; set; } - public string name { get; set; } + public string Name { get; set; } - public array photoUrls { get; set; } + public List PhotoUrls { get; set; } - public array tags { get; set; } + public List Tags { get; set; } /* pet status in the store */ - public string status { get; set; } + public string Status { get; set; } @@ -42,17 +42,17 @@ namespace io.swagger.Model { var sb = new StringBuilder(); sb.Append("class Pet {\n"); - sb.Append(" id: ").Append(id).Append("\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); - sb.Append(" category: ").Append(category).Append("\n"); + sb.Append(" Category: ").Append(Category).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); - sb.Append(" photoUrls: ").Append(photoUrls).Append("\n"); + sb.Append(" PhotoUrls: ").Append(PhotoUrls).Append("\n"); - sb.Append(" tags: ").Append(tags).Append("\n"); + sb.Append(" Tags: ").Append(Tags).Append("\n"); - sb.Append(" status: ").Append(status).Append("\n"); + sb.Append(" Status: ").Append(Status).Append("\n"); sb.Append("}\n"); return sb.ToString(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Tag.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Tag.cs index 91eff8d83add..2fbf70700504 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Tag.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/Tag.cs @@ -8,12 +8,12 @@ namespace io.swagger.Model { - public long? id { get; set; } + public long? Id { get; set; } - public string name { get; set; } + public string Name { get; set; } @@ -21,9 +21,9 @@ namespace io.swagger.Model { var sb = new StringBuilder(); sb.Append("class Tag {\n"); - sb.Append(" id: ").Append(id).Append("\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); - sb.Append(" name: ").Append(name).Append("\n"); + sb.Append(" Name: ").Append(Name).Append("\n"); sb.Append("}\n"); return sb.ToString(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/User.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/User.cs index 17735989b5fe..146ba13c7683 100644 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/User.cs +++ b/samples/client/petstore/csharp/src/main/csharp/io/swagger/Model/User.cs @@ -8,43 +8,43 @@ namespace io.swagger.Model { - public long? id { get; set; } + public long? Id { get; set; } - public string username { get; set; } + public string Username { get; set; } - public string firstName { get; set; } + public string FirstName { get; set; } - public string lastName { get; set; } + public string LastName { get; set; } - public string email { get; set; } + public string Email { get; set; } - public string password { get; set; } + public string Password { get; set; } - public string phone { get; set; } + public string Phone { get; set; } /* User Status */ - public int? userStatus { get; set; } + public int? UserStatus { get; set; } @@ -52,21 +52,21 @@ namespace io.swagger.Model { var sb = new StringBuilder(); sb.Append("class User {\n"); - sb.Append(" id: ").Append(id).Append("\n"); + sb.Append(" Id: ").Append(Id).Append("\n"); - sb.Append(" username: ").Append(username).Append("\n"); + sb.Append(" Username: ").Append(Username).Append("\n"); - sb.Append(" firstName: ").Append(firstName).Append("\n"); + sb.Append(" FirstName: ").Append(FirstName).Append("\n"); - sb.Append(" lastName: ").Append(lastName).Append("\n"); + sb.Append(" LastName: ").Append(LastName).Append("\n"); - sb.Append(" email: ").Append(email).Append("\n"); + sb.Append(" Email: ").Append(Email).Append("\n"); - sb.Append(" password: ").Append(password).Append("\n"); + sb.Append(" Password: ").Append(Password).Append("\n"); - sb.Append(" phone: ").Append(phone).Append("\n"); + sb.Append(" Phone: ").Append(Phone).Append("\n"); - sb.Append(" userStatus: ").Append(userStatus).Append("\n"); + sb.Append(" UserStatus: ").Append(UserStatus).Append("\n"); sb.Append("}\n"); return sb.ToString(); diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/PetApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/PetApi.cs deleted file mode 100644 index f37c882a6cb5..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/PetApi.cs +++ /dev/null @@ -1,459 +0,0 @@ - using System; - using System.Collections.Generic; - using io.swagger.client; - using io.swagger.client.model; - - - - - namespace io.swagger.client.api { - - public class PetApi { - string basePath; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public PetApi(String basePath = "http://petstore.swagger.io/v2") - { - this.basePath = basePath; - } - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - - - /// - /// Update an existing pet - /// - /// Pet object that needs to be added to the store - - /// - public void updatePet (Pet body) { - // create path and map variables - var path = "/pet".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, com.wordnik.swagger.codegen.CodegenParameter@a1193a9, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Add a new pet to the store - /// - /// Pet object that needs to be added to the store - - /// - public void addPet (Pet body) { - // create path and map variables - var path = "/pet".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@7f54169, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Finds Pets by status Multiple status values can be provided with comma seperated strings - /// - /// Status values that need to be considered for filter - - /// - public List findPetsByStatus (List status) { - // create path and map variables - var path = "/pet/findByStatus".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - if (status != null){ - string paramStr = (status is DateTime) ? ((DateTime)(object)status).ToString("u") : Convert.ToString(status); - queryParams.Add("status", paramStr); - } - - - - - - - try { - if (typeof(List) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as List; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (List) ApiInvoker.deserialize(response, typeof(List)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Finds Pets by tags Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. - /// - /// Tags to filter by - - /// - public List findPetsByTags (List tags) { - // create path and map variables - var path = "/pet/findByTags".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - if (tags != null){ - string paramStr = (tags is DateTime) ? ((DateTime)(object)tags).ToString("u") : Convert.ToString(tags); - queryParams.Add("tags", paramStr); - } - - - - - - - try { - if (typeof(List) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as List; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (List) ApiInvoker.deserialize(response, typeof(List)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Find pet by ID Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions - /// - /// ID of pet that needs to be fetched - - /// - public Pet getPetById (Long petId) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(Pet) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as Pet; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (Pet) ApiInvoker.deserialize(response, typeof(Pet)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Updates a pet in the store with form data - /// - /// ID of pet that needs to be updated - /// Updated name of the pet - /// Updated status of the pet - - /// - public void updatePetWithForm (String petId, String name, String status) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - if (name != null){ - if(name is byte[]) { - formParams.Add("name", name); - } else { - string paramStr = (name is DateTime) ? ((DateTime)(object)name).ToString("u") : Convert.ToString(name); - formParams.Add("name", paramStr); - } - } - if (status != null){ - if(status is byte[]) { - formParams.Add("status", status); - } else { - string paramStr = (status is DateTime) ? ((DateTime)(object)status).ToString("u") : Convert.ToString(status); - formParams.Add("status", paramStr); - } - } - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Deletes a pet - /// - /// - /// Pet id to delete - - /// - public void deletePet (String apiKey, Long petId) { - // create path and map variables - var path = "/pet/{petId}".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - headerParams.Add("apiKey", apiKey); - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// uploads an image - /// - /// ID of pet to update - /// Additional data to pass to server - /// file to upload - - /// - public void uploadFile (Long petId, String additionalMetadata, File file) { - // create path and map variables - var path = "/pet/{petId}/uploadImage".Replace("{format}","json").Replace("{" + "petId" + "}", apiInvoker.escapeString(petId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - if (additionalMetadata != null){ - if(additionalMetadata is byte[]) { - formParams.Add("additionalMetadata", additionalMetadata); - } else { - string paramStr = (additionalMetadata is DateTime) ? ((DateTime)(object)additionalMetadata).ToString("u") : Convert.ToString(additionalMetadata); - formParams.Add("additionalMetadata", paramStr); - } - } - if (file != null){ - if(file is byte[]) { - formParams.Add("file", file); - } else { - string paramStr = (file is DateTime) ? ((DateTime)(object)file).ToString("u") : Convert.ToString(file); - formParams.Add("file", paramStr); - } - } - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - } - - } \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/StoreApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/StoreApi.cs deleted file mode 100644 index 1379255b07a5..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/StoreApi.cs +++ /dev/null @@ -1,224 +0,0 @@ - using System; - using System.Collections.Generic; - using io.swagger.client; - using io.swagger.client.model; - - - - - namespace io.swagger.client.api { - - public class StoreApi { - string basePath; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public StoreApi(String basePath = "http://petstore.swagger.io/v2") - { - this.basePath = basePath; - } - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - - - /// - /// Returns pet inventories by status Returns a map of status codes to quantities - /// - - /// - public Map getInventory () { - // create path and map variables - var path = "/store/inventory".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(Map) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as Map; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (Map) ApiInvoker.deserialize(response, typeof(Map)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Place an order for a pet - /// - /// order placed for purchasing the pet - - /// - public Order placeOrder (Order body) { - // create path and map variables - var path = "/store/order".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(Order) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as Order; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@2ee95a72, headerParams, formParams); - if(response != null){ - return (Order) ApiInvoker.deserialize(response, typeof(Order)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions - /// - /// ID of pet that needs to be fetched - - /// - public Order getOrderById (String orderId) { - // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(Order) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as Order; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (Order) ApiInvoker.deserialize(response, typeof(Order)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - /// - /// ID of the order that needs to be deleted - - /// - public void deleteOrder (String orderId) { - // create path and map variables - var path = "/store/order/{orderId}".Replace("{format}","json").Replace("{" + "orderId" + "}", apiInvoker.escapeString(orderId.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - } - - } \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/UserApi.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/UserApi.cs deleted file mode 100644 index 3b16377ab48f..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/api/UserApi.cs +++ /dev/null @@ -1,422 +0,0 @@ - using System; - using System.Collections.Generic; - using io.swagger.client; - using io.swagger.client.model; - - - - - namespace io.swagger.client.api { - - public class UserApi { - string basePath; - private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance(); - - public UserApi(String basePath = "http://petstore.swagger.io/v2") - { - this.basePath = basePath; - } - - public ApiInvoker getInvoker() { - return apiInvoker; - } - - // Sets the endpoint base url for the services being accessed - public void setBasePath(string basePath) { - this.basePath = basePath; - } - - // Gets the endpoint base url for the services being accessed - public String getBasePath() { - return basePath; - } - - - - /// - /// Create user This can only be done by the logged in user. - /// - /// Created user object - - /// - public void createUser (User body) { - // create path and map variables - var path = "/user".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@3f1dd29a, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Creates list of users with given input array - /// - /// List of user object - - /// - public void createUsersWithArrayInput (List body) { - // create path and map variables - var path = "/user/createWithArray".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@3eed9cd5, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Creates list of users with given input array - /// - /// List of user object - - /// - public void createUsersWithListInput (List body) { - // create path and map variables - var path = "/user/createWithList".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, com.wordnik.swagger.codegen.CodegenParameter@61d38439, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Logs user into the system - /// - /// The user name for login - /// The password for login in clear text - - /// - public String loginUser (String username, String password) { - // create path and map variables - var path = "/user/login".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - if (username != null){ - string paramStr = (username is DateTime) ? ((DateTime)(object)username).ToString("u") : Convert.ToString(username); - queryParams.Add("username", paramStr); - } - if (password != null){ - string paramStr = (password is DateTime) ? ((DateTime)(object)password).ToString("u") : Convert.ToString(password); - queryParams.Add("password", paramStr); - } - - - - - - - try { - if (typeof(String) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as String; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (String) ApiInvoker.deserialize(response, typeof(String)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Logs out current logged in user session - /// - - /// - public void logoutUser () { - // create path and map variables - var path = "/user/logout".Replace("{format}","json"); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Get user by user name - /// - /// The name that needs to be fetched. Use user1 for testing. - - /// - public User getUserByName (String username) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(User) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ((object)response) as User; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - if(response != null){ - return (User) ApiInvoker.deserialize(response, typeof(User)); - } - else { - return null; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return null; - } - else { - throw ex; - } - } - } - - - /// - /// Updated user This can only be done by the logged in user. - /// - /// name that need to be deleted - /// Updated user object - - /// - public void updateUser (String username, User body) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, com.wordnik.swagger.codegen.CodegenParameter@58dec5c, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - - /// - /// Delete user This can only be done by the logged in user. - /// - /// The name that needs to be deleted - - /// - public void deleteUser (String username) { - // create path and map variables - var path = "/user/{username}".Replace("{format}","json").Replace("{" + "username" + "}", apiInvoker.escapeString(username.ToString())); - - // query params - var queryParams = new Dictionary(); - var headerParams = new Dictionary(); - var formParams = new Dictionary(); - - - - - - - - - - try { - if (typeof(void) == typeof(byte[])) { - var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams); - return ; - } else { - var response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, null, headerParams, formParams); - if(response != null){ - return ; - } - else { - return ; - } - } - } catch (ApiException ex) { - if(ex.ErrorCode == 404) { - return ; - } - else { - throw ex; - } - } - } - - } - - } \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Category.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Category.cs deleted file mode 100644 index f7cf3ae087b2..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Category.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace io.swagger.client.model { - public class Category { - - - - public Long id { get; set; } - - - - - public String name { get; set; } - - - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Category {\n"); - - sb.Append(" id: ").Append(id).Append("\n"); - - sb.Append(" name: ").Append(name).Append("\n"); - - sb.Append("}\n"); - return sb.ToString(); - } - } - - -} \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Order.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Order.cs deleted file mode 100644 index 60587e5fbc90..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Order.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace io.swagger.client.model { - public class Order { - - - - public Long id { get; set; } - - - - - public Long petId { get; set; } - - - - - public Integer quantity { get; set; } - - - - - public Date shipDate { get; set; } - - - - /* Order Status */ - - public String status { get; set; } - - - - - public Boolean complete { get; set; } - - - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Order {\n"); - - sb.Append(" id: ").Append(id).Append("\n"); - - sb.Append(" petId: ").Append(petId).Append("\n"); - - sb.Append(" quantity: ").Append(quantity).Append("\n"); - - sb.Append(" shipDate: ").Append(shipDate).Append("\n"); - - sb.Append(" status: ").Append(status).Append("\n"); - - sb.Append(" complete: ").Append(complete).Append("\n"); - - sb.Append("}\n"); - return sb.ToString(); - } - } - - -} \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Pet.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Pet.cs deleted file mode 100644 index 30c6817a8e04..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Pet.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace io.swagger.client.model { - public class Pet { - - - - public Long id { get; set; } - - - - - public Category category { get; set; } - - - - - public String name { get; set; } - - - - - public List photoUrls { get; set; } - - - - - public List tags { get; set; } - - - - /* pet status in the store */ - - public String status { get; set; } - - - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Pet {\n"); - - sb.Append(" id: ").Append(id).Append("\n"); - - sb.Append(" category: ").Append(category).Append("\n"); - - sb.Append(" name: ").Append(name).Append("\n"); - - sb.Append(" photoUrls: ").Append(photoUrls).Append("\n"); - - sb.Append(" tags: ").Append(tags).Append("\n"); - - sb.Append(" status: ").Append(status).Append("\n"); - - sb.Append("}\n"); - return sb.ToString(); - } - } - - -} \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Tag.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Tag.cs deleted file mode 100644 index c489ec8691f5..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/Tag.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace io.swagger.client.model { - public class Tag { - - - - public Long id { get; set; } - - - - - public String name { get; set; } - - - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class Tag {\n"); - - sb.Append(" id: ").Append(id).Append("\n"); - - sb.Append(" name: ").Append(name).Append("\n"); - - sb.Append("}\n"); - return sb.ToString(); - } - } - - -} \ No newline at end of file diff --git a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/User.cs b/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/User.cs deleted file mode 100644 index 7d9280b3f6d2..000000000000 --- a/samples/client/petstore/csharp/src/main/csharp/io/swagger/client/model/User.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.Text; -using System.Collections; -using System.Collections.Generic; - -namespace io.swagger.client.model { - public class User { - - - - public Long id { get; set; } - - - - - public String username { get; set; } - - - - - public String firstName { get; set; } - - - - - public String lastName { get; set; } - - - - - public String email { get; set; } - - - - - public String password { get; set; } - - - - - public String phone { get; set; } - - - - /* User Status */ - - public Integer userStatus { get; set; } - - - - public override string ToString() { - var sb = new StringBuilder(); - sb.Append("class User {\n"); - - sb.Append(" id: ").Append(id).Append("\n"); - - sb.Append(" username: ").Append(username).Append("\n"); - - sb.Append(" firstName: ").Append(firstName).Append("\n"); - - sb.Append(" lastName: ").Append(lastName).Append("\n"); - - sb.Append(" email: ").Append(email).Append("\n"); - - sb.Append(" password: ").Append(password).Append("\n"); - - sb.Append(" phone: ").Append(phone).Append("\n"); - - sb.Append(" userStatus: ").Append(userStatus).Append("\n"); - - sb.Append("}\n"); - return sb.ToString(); - } - } - - -} \ No newline at end of file