示例#1
0
        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();
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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("");
            }
        }
示例#4
0
 public EnumSerialization(Type t, EnumSerializationType serializationType)
 {
     m_type = t;
     m_serializationType = serializationType;
 }
示例#5
0
 public EnumSerializationAttribute(EnumSerializationType serializationType)
 {
     EnumSerializationType = serializationType;
 }
示例#6
0
        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();
        }
示例#7
0
 public static JsonStringEnumValidator Create(IEnumerable <string> values, EnumSerializationType type)
 {
     return(new JsonStringEnumValidator(values, type));
 }