forked from loafle/openapi-generator-original
[csharp-netcore] Enum parameter serialization to use EnumMember value when provided. (#11448)
* Add modification to petstore yaml to support testing enum string resolve. Move csharp-netcore-net50 to point to new yaml schema. * [csharp-netcore] - For enum's with an EnumMember Attribute use this value instead of enum.ToString(). -Regenerate csharp samples to accomodate change. * fix: rebase on master. Update samples. * task (Samples): update csharp-netcore samples. (via generate-samples.sh)
This commit is contained in:
parent
514dbca08b
commit
0d56ebc702
@ -5,6 +5,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
{{#useCompareNetObjects}}
|
{{#useCompareNetObjects}}
|
||||||
@ -112,6 +113,8 @@ namespace {{packageName}}.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -210,5 +213,40 @@ namespace {{packageName}}.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
# Org.OpenAPITools.Model.PetStatusFilter
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
*
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Org.OpenAPITools.Api;
|
||||||
|
using Org.OpenAPITools.Model;
|
||||||
|
using Org.OpenAPITools.Client;
|
||||||
|
using System.Reflection;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Org.OpenAPITools.Test.Model
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Class for testing PetStatusFilter
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
/// Please update the test case below to test the model.
|
||||||
|
/// </remarks>
|
||||||
|
public class PetStatusFilterTests : IDisposable
|
||||||
|
{
|
||||||
|
// TODO uncomment below to declare an instance variable for PetStatusFilter
|
||||||
|
//private PetStatusFilter instance;
|
||||||
|
|
||||||
|
public PetStatusFilterTests()
|
||||||
|
{
|
||||||
|
// TODO uncomment below to create an instance of PetStatusFilter
|
||||||
|
//instance = new PetStatusFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
// Cleanup when everything is done.
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Test an instance of PetStatusFilter
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void PetStatusFilterInstanceTest()
|
||||||
|
{
|
||||||
|
// TODO uncomment below to test "IsType" PetStatusFilter
|
||||||
|
//Assert.IsType<PetStatusFilter>(instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* OpenAPI Petstore
|
||||||
|
*
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* The version of the OpenAPI document: 1.0.0
|
||||||
|
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Converters;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
|
||||||
|
using OpenAPIClientUtils = Org.OpenAPITools.Client.ClientUtils;
|
||||||
|
|
||||||
|
namespace Org.OpenAPITools.Model
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Defines PetStatusFilter
|
||||||
|
/// </summary>
|
||||||
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
public enum PetStatusFilter
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Enum Available for value: available
|
||||||
|
/// </summary>
|
||||||
|
[EnumMember(Value = "available")]
|
||||||
|
Available = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enum Pending for value: pending
|
||||||
|
/// </summary>
|
||||||
|
[EnumMember(Value = "pending")]
|
||||||
|
Pending = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enum Sold for value: sold
|
||||||
|
/// </summary>
|
||||||
|
[EnumMember(Value = "sold")]
|
||||||
|
Sold = 3
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using System.Collections;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using KellermanSoftware.CompareNetObjects;
|
using KellermanSoftware.CompareNetObjects;
|
||||||
@ -116,6 +117,8 @@ namespace Org.OpenAPITools.Client
|
|||||||
return boolean ? "true" : "false";
|
return boolean ? "true" : "false";
|
||||||
if (obj is ICollection collection)
|
if (obj is ICollection collection)
|
||||||
return string.Join(",", collection.Cast<object>());
|
return string.Join(",", collection.Cast<object>());
|
||||||
|
if (obj is Enum && HasEnumMemberAttrValue(obj))
|
||||||
|
return GetEnumMemberAttrValue(obj);
|
||||||
|
|
||||||
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
return Convert.ToString(obj, CultureInfo.InvariantCulture);
|
||||||
}
|
}
|
||||||
@ -214,5 +217,40 @@ namespace Org.OpenAPITools.Client
|
|||||||
|
|
||||||
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
return JsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is the Enum decorated with EnumMember Attribute
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>true if found</returns>
|
||||||
|
private static bool HasEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the EnumMember value
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="enumVal"></param>
|
||||||
|
/// <returns>EnumMember value as string otherwise null</returns>
|
||||||
|
private static string GetEnumMemberAttrValue(object enumVal)
|
||||||
|
{
|
||||||
|
if (enumVal == null)
|
||||||
|
throw new ArgumentNullException(nameof(enumVal));
|
||||||
|
var enumType = enumVal.GetType();
|
||||||
|
var memInfo = enumType.GetMember(enumVal.ToString() ?? throw new InvalidOperationException());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<EnumMemberAttribute>().FirstOrDefault();
|
||||||
|
if (attr != null)
|
||||||
|
{
|
||||||
|
return attr.Value;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user