public static IJsonSchemaValidator Create(Type t, EnumSerializationType serializationType, object[] excludes) { switch (serializationType) { case EnumSerializationType.AsLowerString: return(JsonStringEnumValidator.Create(GetStringValues(t, excludes, x => x.ToLower()))); case EnumSerializationType.AsInt: return(JsonIntEnumValidator.Create(GetIntValues(t, excludes))); default: throw new NotImplementedException(); } }
public static IJsonSchemaValidator Create(object[] values, EnumSerializationType type) { foreach (var x in values) { if (x is string) { return(JsonStringEnumValidator.Create(values.Select(y => (string)y), type)); } if (x is int) { return(JsonIntEnumValidator.Create(values.Select(y => (int)y))); } } throw new NotImplementedException(); }
JsonStringEnumValidator(IEnumerable <string> values, EnumSerializationType type) { SerializationType = type; switch (SerializationType) { case EnumSerializationType.AsString: Values = values.ToArray(); break; case EnumSerializationType.AsLowerString: Values = values.Select(x => x.ToLower()).ToArray(); break; case EnumSerializationType.AsUpperString: Values = values.Select(x => x.ToUpper()).ToArray(); break; case EnumSerializationType.AsInt: throw new ArgumentException("JsonStringEnumValidator not allow AsInt"); default: throw new NotImplementedException(""); } }
public EnumSerialization(Type t, EnumSerializationType serializationType) { m_type = t; m_serializationType = serializationType; }
public EnumSerializationAttribute(EnumSerializationType serializationType) { EnumSerializationType = serializationType; }
public static IJsonSchemaValidator Create(IEnumerable <JsonSchema> composition, EnumSerializationType type) { foreach (var x in composition) { if (x.Validator is JsonStringEnumValidator) { return(JsonStringEnumValidator.Create(composition .Select(y => y.Validator as JsonStringEnumValidator) .Where(y => y != null) .SelectMany(y => y.Values), type )); } if (x.Validator is JsonIntEnumValidator) { return(JsonIntEnumValidator.Create(composition .Select(y => y.Validator as JsonIntEnumValidator) .Where(y => y != null) .SelectMany(y => y.Values) )); } } throw new NotImplementedException(); }
public static JsonStringEnumValidator Create(IEnumerable <string> values, EnumSerializationType type) { return(new JsonStringEnumValidator(values, type)); }