Having a custom EnumConverter that should return the default enum isn't working as I expect.
Enum :
public enum MyEnum
{
    Unknonw = 0,
    FirstEnum = 1,
    SecondEnum = 2
}
The converter :
public override ContractType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
    switch (reader.TokenType)
    {
        case JsonTokenType.String:
        {
            var value = reader.GetString();
            if (Enum.TryParse(typeToConvert, value, out var result))
            {
                return (MyEnum)result;
            }
            return MyEnum.Unknown;
        }
        case JsonTokenType.Number:
        {
            var value = reader.GetInt32();
            MyEnum myEnum = (MyEnum)value;
            if (Enum.TryParse(typeToConvert, myEnum.ToString(), out var result))
            {
                return (MyEnum)result;
            }
            return MyEnum.Unknown;
        }
            default:
                return MyEnum.Unknown;
        }
    }
}
If I use this for example in my JSON resuest :
{
    "myType": 7
}
It doesn't return MyEnym.Unknown, why is that? What am I missing?
If I use this for example in my JSON request :
{
    "myType": "Random"
}
It return's MyEnum.Unknown.
And if I use this for example :
{
    "myType": 1
}
It return's MyEnum.FirstEnum. So this part.
 
    