public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            Enum e = (Enum)value;

            string enumName = e.ToString("G");

            if (char.IsNumber(enumName[0]) ||
                enumName[0] == '-')
            {
                // enum value has no name so write number
                writer.WriteValue(value);
            }
            else
            {
                string finalName = SnakeCasePropertyResolver.ToSnakeCase(enumName);

                _stringEnumConverter.WriteJson(writer, finalName, serializer);
            }
        }
        public string SerializeEnum(object obj, Type type)
        {
            string enumValue = Enum.GetName(type, obj);

            return(SnakeCasePropertyResolver.ToSnakeCase(enumValue));
        }
 protected override string ResolvePropertyName(string propertyName)
 {
     return(SnakeCasePropertyResolver.ToSnakeCase(propertyName));
 }