mirror of
https://github.com/LukeHagar/plexcsharp.git
synced 2025-12-06 20:47:49 +00:00
ci: regenerated with OpenAPI Doc 0.0.3, Speakeasy CLI 1.129.1
This commit is contained in:
67
PlexAPI/Utils/EnumSerializer.cs
Normal file
67
PlexAPI/Utils/EnumSerializer.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost when
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
#nullable enable
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace PlexAPI.Utils
|
||||
{
|
||||
internal class EnumSerializer : JsonConverter
|
||||
{
|
||||
public override bool CanConvert(System.Type objectType) => objectType.IsEnum;
|
||||
|
||||
public override bool CanRead => true;
|
||||
|
||||
public override object? ReadJson(
|
||||
JsonReader reader,
|
||||
System.Type objectType,
|
||||
object? existingValue,
|
||||
JsonSerializer serializer
|
||||
)
|
||||
{
|
||||
if (reader.Value == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(reader.Value));
|
||||
}
|
||||
|
||||
var extensionType = System.Type.GetType(objectType.FullName + "Extension");
|
||||
if (extensionType == null)
|
||||
{
|
||||
return Enum.ToObject(objectType, reader.Value);
|
||||
}
|
||||
|
||||
var method = extensionType.GetMethod("ToEnum");
|
||||
if (method == null)
|
||||
{
|
||||
throw new Exception($"Unable to find ToEnum method on {extensionType.FullName}");
|
||||
}
|
||||
|
||||
return method.Invoke(null, new[] { (string)reader.Value });
|
||||
}
|
||||
|
||||
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
writer.WriteValue("null");
|
||||
return;
|
||||
}
|
||||
|
||||
var extensionType = System.Type.GetType(value.GetType().FullName + "Extension");
|
||||
if (extensionType == null)
|
||||
{
|
||||
writer.WriteValue(value);
|
||||
return;
|
||||
}
|
||||
|
||||
writer.WriteValue(Utilities.ToString(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user