Created
July 24, 2018 13:13
-
-
Save molnarm/a28be1ecd653ee524fb6d485d8007f41 to your computer and use it in GitHub Desktop.
Code generation issue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//---------------------- | |
// <auto-generated> | |
// Generated using the NSwag toolchain v11.17.21.0 (NJsonSchema v9.10.63.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org) | |
// </auto-generated> | |
//---------------------- | |
namespace RailKit | |
{ | |
#pragma warning disable // Disable all warnings | |
[System.CodeDom.Compiler.GeneratedCode("NSwag", "11.17.21.0 (NJsonSchema v9.10.63.0 (Newtonsoft.Json v9.0.0.0))")] | |
public partial interface IClient | |
{ | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
System.Threading.Tasks.Task<ExampleClass> TestGetAsync(); | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
ExampleClass TestGet(); | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
/// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> | |
System.Threading.Tasks.Task<ExampleClass> TestGetAsync(System.Threading.CancellationToken cancellationToken); | |
} | |
[System.CodeDom.Compiler.GeneratedCode("NSwag", "11.17.21.0 (NJsonSchema v9.10.63.0 (Newtonsoft.Json v9.0.0.0))")] | |
public partial class Client : BaseRailKitClient, IClient | |
{ | |
private System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings; | |
public Client(string baseUrl) | |
{ | |
BaseUrl = baseUrl; | |
_settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(() => | |
{ | |
var settings = new Newtonsoft.Json.JsonSerializerSettings(); | |
UpdateJsonSerializerSettings(settings); | |
return settings; | |
}); | |
} | |
protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } | |
partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); | |
partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); | |
partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); | |
partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
public System.Threading.Tasks.Task<ExampleClass> TestGetAsync() | |
{ | |
return TestGetAsync(System.Threading.CancellationToken.None); | |
} | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
public ExampleClass TestGet() | |
{ | |
return System.Threading.Tasks.Task.Run(async () => await TestGetAsync(System.Threading.CancellationToken.None)).GetAwaiter().GetResult(); | |
} | |
/// <summary>Summary.</summary> | |
/// <returns>Something something response</returns> | |
/// <exception cref="RailKitException">A server side error occurred.</exception> | |
/// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> | |
public async System.Threading.Tasks.Task<ExampleClass> TestGetAsync(System.Threading.CancellationToken cancellationToken) | |
{ | |
var urlBuilder_ = new System.Text.StringBuilder(); | |
urlBuilder_.Append(BaseUrl != null ? BaseUrl.TrimEnd('/') : "").Append("/test"); | |
var client_ = new System.Net.Http.HttpClient(); | |
try | |
{ | |
using (var request_ = new System.Net.Http.HttpRequestMessage()) | |
{ | |
request_.Method = new System.Net.Http.HttpMethod("GET"); | |
request_.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); | |
PrepareRequest(client_, request_, urlBuilder_); | |
var url_ = urlBuilder_.ToString(); | |
request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); | |
PrepareRequest(client_, request_, url_); | |
var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); | |
try | |
{ | |
var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); | |
if (response_.Content != null && response_.Content.Headers != null) | |
{ | |
foreach (var item_ in response_.Content.Headers) | |
headers_[item_.Key] = item_.Value; | |
} | |
ProcessResponse(client_, response_); | |
var status_ = ((int)response_.StatusCode).ToString(); | |
if (status_ == "200") | |
{ | |
var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); | |
var result_ = default(ExampleClass); | |
try | |
{ | |
result_ = Newtonsoft.Json.JsonConvert.DeserializeObject<ExampleClass>(responseData_, _settings.Value); | |
return result_; | |
} | |
catch (System.Exception exception_) | |
{ | |
throw new RailKitException("Could not deserialize the response body.", (int)response_.StatusCode, responseData_, headers_, exception_); | |
} | |
} | |
else | |
{ | |
var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); | |
var result_ = default(ExampleClass); | |
try | |
{ | |
result_ = Newtonsoft.Json.JsonConvert.DeserializeObject<ExampleClass>(responseData_, _settings.Value); | |
} | |
catch (System.Exception exception_) | |
{ | |
throw new RailKitException("Could not deserialize the response body.", (int)response_.StatusCode, responseData_, headers_, exception_); | |
} | |
throw new RailKitException<ExampleClass>("Default response", (int)response_.StatusCode, responseData_, headers_, result_, null); | |
} | |
return default(ExampleClass); | |
} | |
finally | |
{ | |
if (response_ != null) | |
response_.Dispose(); | |
} | |
} | |
} | |
finally | |
{ | |
if (client_ != null) | |
client_.Dispose(); | |
} | |
} | |
private string ConvertToString(object value, System.Globalization.CultureInfo cultureInfo) | |
{ | |
if (value is System.Enum) | |
{ | |
string name = System.Enum.GetName(value.GetType(), value); | |
if (name != null) | |
{ | |
var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); | |
if (field != null) | |
{ | |
var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) | |
as System.Runtime.Serialization.EnumMemberAttribute; | |
if (attribute != null) | |
{ | |
return attribute.Value; | |
} | |
} | |
} | |
} | |
else if (value is byte[]) | |
{ | |
return System.Convert.ToBase64String((byte[]) value); | |
} | |
else if (value != null && value.GetType().IsArray) | |
{ | |
var array = System.Linq.Enumerable.OfType<object>((System.Array) value); | |
return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); | |
} | |
return System.Convert.ToString(value, cultureInfo); | |
} | |
} | |
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "9.10.63.0 (Newtonsoft.Json v9.0.0.0)")] | |
public partial class ExampleClass | |
{ | |
[Newtonsoft.Json.JsonProperty("property", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] | |
public string Property { get; set; } | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
swagger: '2.0' | |
info: | |
title: Code generation issue | |
version: v0.0.1 | |
paths: | |
/test: | |
get: | |
summary: Summary. | |
description: Description. | |
responses: | |
"200": | |
description: Something something response | |
schema: | |
$ref: '#/definitions/ExampleClass' | |
default: | |
description: Default response | |
schema: | |
$ref: '#/definitions/ExampleClass' | |
definitions: | |
ExampleClass: | |
type: object | |
properties: | |
property: | |
type: string |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment