/// <inheritdoc />
 public void Handle(IJsonContractRequest request)
 {
     if (request.dataType.IsEnum && !Attribute.IsDefined(request.dataType, typeof(FlagsAttribute)))
     {
         var converter = new EnumJsonConverter(request.dataType);
         var contract  = new JsonLinqContract(request.dataType)
         {
             Converter = converter
         };
         request.Return(contract);
     }
 }
 /// <inheritdoc />
 public void Handle(IJsonContractRequest request)
 {
     if (request.dataType.IsEnum && Attribute.IsDefined(request.dataType, typeof(FlagsAttribute)))
     {
         var converter = new StringEnumConverter {
             AllowIntegerValues = false
         };
         request.Return(new JsonPrimitiveContract(request.dataType)
         {
             Converter = converter
         });
     }
 }
 /// <inheritdoc />
 public void Handle(IJsonContractRequest request)
 {
     var valueType    = request.dataType.GetGenericArguments()[0];
     var valueDefault =
         valueType.GetCustomAttributes()
         .Select(a => a as IDefaultValueProvider).FirstOrDefault(a => a is {})