private void WriteType(string propertyName, JsonWriter writer, JsonSchemaType type)
{
if (Enum.IsDefined(typeof(JsonSchemaType), type))
{
writer.WritePropertyName(propertyName);
writer.WriteValue(JsonSchemaBuilder.MapType(type));
return;
}
IEnumerator <JsonSchemaType> enumerator = (
from v in EnumUtils.GetFlagsValues <JsonSchemaType>(type)
where v != JsonSchemaType.None
select v).GetEnumerator();
if (enumerator.MoveNext())
{
writer.WritePropertyName(propertyName);
JsonSchemaType current = enumerator.Current;
if (enumerator.MoveNext())
{
writer.WriteStartArray();
writer.WriteValue(JsonSchemaBuilder.MapType(current));
do
{
writer.WriteValue(JsonSchemaBuilder.MapType(enumerator.Current));
}while (enumerator.MoveNext());
writer.WriteEndArray();
return;
}
writer.WriteValue(JsonSchemaBuilder.MapType(current));
}
}