Esempio n. 1
0
 public ContractResolver(DefaultJsonSerializer serializer)
 {
     _serializer          = serializer;
     _stringEnumConverter = new StringEnumConverter();
     _streamConverter     = new StreamConverter(serializer);
     _jsonTokenConverter  = new JsonTokenConverter();
     _snowflakeConverter  = new SnowflakeConverter();
     _optionalConverters  = new SynchronizedDictionary <Type, OptionalConverter>();
 }
        public void TestConvertToEnum_UFXMarketCode_Exception()
        {
            string code = "10";

            UFXMarketCode testCode;

            var val = StringEnumConverter.GetIntType <UFXMarketCode>(code);

            Console.WriteLine(val);
        }
Esempio n. 3
0
        private static JsonSerializer CreateSerializer()
        {
            JsonSerializer serializer = new JsonSerializer();

            serializer.Formatting = Formatting.Indented;
            StringEnumConverter enumConverter = new StringEnumConverter();

            serializer.Converters.Add(enumConverter);
            return(serializer);
        }
        public void StringEnumConvert_String_Should_Pass()
        {
            var myConverter = new StringEnumConverter();

            var myObject = "Feet";
            var Result   = myConverter.Convert(myObject, typeof(ItemLocationEnum), null, null);
            var Expected = ItemLocationEnum.Feet;

            Assert.AreEqual(Expected, Result, TestContext.CurrentContext.Test.Name);
        }
Esempio n. 5
0
        public void JsonDeserialize_PatternWithoutFormatAndLanguages_CorrectlyProcessed()
        {
            var data = "[{\"Key\":\"96\",\"Value\":\"(<[expr]>.)?<[(?i)(password|pwd)]> = <[\\\"\\\\w*\\\"]>\"}]";
            var stringEnumConverter    = new StringEnumConverter();
            var languageFlagsConverter = new PatternJsonSafeConverter();

            var patternDtos = JsonConvert.DeserializeObject <List <PatternDto> >(data, stringEnumConverter, languageFlagsConverter);

            Assert.AreEqual(1, patternDtos.Count);
        }
Esempio n. 6
0
        public void Model_Converter_StringEnumConverter_ConvertBack_Int_Should_Pass()
        {
            var myConverter = new StringEnumConverter();

            int myObject = 40;
            var Result   = myConverter.ConvertBack(myObject, typeof(ItemLocationEnum), null, null);
            var Expected = "Feet";

            Assert.AreEqual(Expected, Result, TestContext.CurrentContext.Test.Name);
        }
        public void StringEnumConverter_CamelCaseTextCtor()
        {
#pragma warning disable CS0618 // Type or member is obsolete
            StringEnumConverter converter = new StringEnumConverter(true);
#pragma warning restore CS0618 // Type or member is obsolete

            Assert.IsNotNull(converter.NamingStrategy);
            Assert.AreEqual(typeof(CamelCaseNamingStrategy), converter.NamingStrategy.GetType());
            Assert.AreEqual(true, converter.AllowIntegerValues);
        }
Esempio n. 8
0
        public void Model_Converter_StringEnumConverter_Convert_Enum_Should_Pass()
        {
            var myConverter = new StringEnumConverter();

            var myObject = ItemLocationEnum.Feet;
            var Result   = myConverter.Convert(myObject, null, null, null);
            var Expected = 40;

            Assert.AreEqual(Expected, Result, TestContext.CurrentContext.Test.Name);
        }
Esempio n. 9
0
        public static JsonSerializerSettings DefaultSerializeSettings()
        {
            var settings = new JsonSerializerSettings();

            var stringEnumConverter = new StringEnumConverter(new CamelCaseNamingStrategy());

            settings.Converters.Add(stringEnumConverter);

            return(settings);
        }
Esempio n. 10
0
        public static JsonSerializerSettings CreateDefaultSerializerSettings()
        {
            var settings            = new JsonSerializerSettings();
            var stringEnumConverter = new StringEnumConverter();

            settings.Converters.Add(stringEnumConverter);
            settings.Formatting       = Formatting.Indented;
            settings.TypeNameHandling = TypeNameHandling.None;
            return(settings);
        }
Esempio n. 11
0
        public void Model_Converter_StringEnumConverter_Convert_Other_Should_Skip()
        {
            var myConverter = new StringEnumConverter();

            var myObject = new Item();
            var Result   = myConverter.Convert(myObject, null, null, null);
            var Expected = 0;

            Assert.AreEqual(Expected, Result, TestContext.CurrentContext.Test.Name);
        }
        public void StringEnumConvertBack_Enum_Should_Skip()
        {
            var myConverter = new StringEnumConverter();

            var myObject = ItemLocationEnum.Feet;
            var Result   = myConverter.ConvertBack(myObject, null, null, null);
            var Expected = 0;

            Assert.AreEqual(Expected, Result, TestContext.CurrentContext.Test.Name);
        }
        public void StringEnumConverter_NamingStrategyTypeCtor()
        {
            StringEnumConverter converter = new StringEnumConverter(typeof(CamelCaseNamingStrategy), new object[] { true, true, true }, false);

            Assert.IsNotNull(converter.NamingStrategy);
            Assert.AreEqual(typeof(CamelCaseNamingStrategy), converter.NamingStrategy.GetType());
            Assert.AreEqual(false, converter.AllowIntegerValues);
            Assert.AreEqual(true, converter.NamingStrategy.OverrideSpecifiedNames);
            Assert.AreEqual(true, converter.NamingStrategy.ProcessDictionaryKeys);
            Assert.AreEqual(true, converter.NamingStrategy.ProcessExtensionDataNames);
        }
Esempio n. 14
0
        private void SerializeValue(JsonWriter writer, object value, JsonContract valueContract, JsonProperty member, JsonContract collectionValueContract)
        {
            JsonConverter converter = (member != null) ? member.Converter : null;

            if (converter == null && JsonSerializerSettings.DefaultEnumSerializationHandling == EnumSerializationHandling.Name && value is Enum)
            {
                converter = new StringEnumConverter();
            }

            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            if ((converter != null ||
                 ((converter = valueContract.Converter) != null) ||
                 ((converter = Serializer.GetMatchingConverter(valueContract.UnderlyingType)) != null) ||
                 ((converter = valueContract.InternalConverter) != null)) &&
                converter.CanWrite)
            {
                SerializeConvertable(writer, converter, value, valueContract);
            }
            else if (valueContract is JsonPrimitiveContract)
            {
                SerializePrimitive(writer, value, (JsonPrimitiveContract)valueContract, member, collectionValueContract);
            }
            else if (valueContract is JsonStringContract)
            {
                SerializeString(writer, value, (JsonStringContract)valueContract);
            }
            else if (valueContract is JsonObjectContract)
            {
                SerializeObject(writer, value, (JsonObjectContract)valueContract, member, collectionValueContract);
            }
            else if (valueContract is JsonDictionaryContract)
            {
                JsonDictionaryContract dictionaryContract = (JsonDictionaryContract)valueContract;
                SerializeDictionary(writer, dictionaryContract.CreateWrapper(value), dictionaryContract, member, collectionValueContract);
            }
            else if (valueContract is JsonArrayContract)
            {
                JsonArrayContract arrayContract = (JsonArrayContract)valueContract;
                SerializeList(writer, arrayContract.CreateWrapper(value), arrayContract, member, collectionValueContract);
            }
            else if (valueContract is JsonLinqContract)
            {
                ((JToken)value).WriteTo(writer, (Serializer.Converters != null) ? Serializer.Converters.ToArray() : null);
            }
            else if (valueContract is JsonISerializableContract)
            {
                SerializeISerializable(writer, (ISerializable)value, (JsonISerializableContract)valueContract);
            }
        }
Esempio n. 15
0
        private string GetConvertedEnumName(string enumName, bool hasSpecifiedName, StringEnumConverter stringEnumConverter)
        {
            if (stringEnumConverter.NamingStrategy != null)
            {
                return(stringEnumConverter.NamingStrategy.GetPropertyName(enumName, hasSpecifiedName));
            }

            return((stringEnumConverter.CamelCaseText)
                ? new CamelCaseNamingStrategy().GetPropertyName(enumName, hasSpecifiedName)
                : enumName);
        }
Esempio n. 16
0
        /// <summary>
        ///     Enables indented camelCase for ease of reading.
        /// </summary>
        /// <param name="config">HttpConfiguration for this api</param>
        private static void EnableCamelCaseJson(HttpConfiguration config)
        {
            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            var stringEnumConverter = new StringEnumConverter {
                CamelCaseText = true
            };

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(stringEnumConverter);
            config.Formatters.JsonFormatter.Indent = true;
        }
Esempio n. 17
0
        public static AssignableType <T> FromEnumDict(AnyDictionary dict, string key, T defaultVal = default(T))
        {
            var str = dict.GetValue <string>(key);

            if (str != null)
            {
                var d = StringEnumConverter.Get <T>();
                return(AssignableType <T> .Create(d[str]));
            }
            // else..
            return(new AssignableType <T>(defaultVal, false));
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            switch (reader.Value)
            {
            case "In Transit":
                return(TrackingStatusCode.InTransit);

            default:
                var converter = new StringEnumConverter();
                return(converter.ReadJson(reader, objectType, existingValue, serializer));
            }
        }
Esempio n. 19
0
        private void InitSerializeSetting()
        {
            this.Setting = new JsonSerializerSettings();
            this.Setting.DefaultValueHandling  = DefaultValueHandling.Include;
            this.Setting.NullValueHandling     = NullValueHandling.Ignore;
            this.Setting.ConstructorHandling   = ConstructorHandling.AllowNonPublicDefaultConstructor;
            this.Setting.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
            this.Setting.TypeNameHandling      = TypeNameHandling.None;
            this.Setting.Formatting            = Formatting.Indented;
            JsonConverter item = new StringEnumConverter();

            this.Setting.Converters.Add(item);
        }
 /// <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
         });
     }
 }
Esempio n. 21
0
 public void ConfigureServices(IServiceCollection services)
 {
     services
     .AddMvc(options => options.EnableEndpointRouting = false)
     .AddNewtonsoftJson(opts =>
     {
         opts.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
         var item = new StringEnumConverter {
             NamingStrategy = new CamelCaseNamingStrategy()
         };
         opts.SerializerSettings.Converters.Add(item);
     });
 }
        public static string ObjectToJson2(object value, bool clearLastZero)
        {
            //IL_0008: Unknown result type (might be due to invalid IL or missing references)
            //IL_000e: Expected O, but got Unknown
            //IL_0027: Unknown result type (might be due to invalid IL or missing references)
            //IL_0031: Expected O, but got Unknown
            //IL_0038: Unknown result type (might be due to invalid IL or missing references)
            //IL_003d: Unknown result type (might be due to invalid IL or missing references)
            //IL_004a: Expected O, but got Unknown
            //IL_0051: Unknown result type (might be due to invalid IL or missing references)
            //IL_005b: Expected O, but got Unknown
            //IL_005c: Unknown result type (might be due to invalid IL or missing references)
            //IL_0062: Expected O, but got Unknown
            //IL_00aa: Unknown result type (might be due to invalid IL or missing references)
            //IL_00b1: Expected O, but got Unknown
            Type           type = value.GetType();
            JsonSerializer val  = new JsonSerializer();

            val.ObjectCreationHandling = ObjectCreationHandling.Replace;
            val.MissingMemberHandling  = MissingMemberHandling.Ignore;
            val.ReferenceLoopHandling  = ReferenceLoopHandling.Ignore;
            val.ContractResolver       = new CamelCasePropertyNamesContractResolver();
            JsonConverterCollection converters = val.Converters;
            StringEnumConverter     val2       = new StringEnumConverter();

            val2.CamelCaseText = true;
            ((Collection <JsonConverter>)converters).Add(val2);
            ((Collection <JsonConverter>)val.Converters).Add(new StringEnumConverter());
            IsoDateTimeConverter val3 = new IsoDateTimeConverter();

            val3.DateTimeFormat = "yyyy-MM-dd";
            ((Collection <JsonConverter>)val.Converters).Add(val3);
            val.Formatting        = Formatting.None;
            val.NullValueHandling = NullValueHandling.Ignore;
            if (clearLastZero)
            {
                ((Collection <JsonConverter>)val.Converters).Add(new MinifiedNumArrayConverter());
            }
            StringWriter   stringWriter = new StringWriter();
            JsonTextWriter val4         = new JsonTextWriter((TextWriter)stringWriter);

            val4.Formatting = Formatting.None;
            val4.QuoteChar  = '"';
            val4.QuoteName  = false;
            val.Serialize(val4, value);
            string text = stringWriter.ToString();

            val4.Close();
            stringWriter.Close();
            return(text.Replace("coreCharts", "echarts", StringComparison.CurrentCultureIgnoreCase));
        }
Esempio n. 23
0
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddApplicationLayer();
     services.AddSharedInfrastructure(Config);
     services.AddSwaggerExtension();
     services.AddControllers()
     .AddNewtonsoftJson(options =>
     {
         var converter = new StringEnumConverter(namingStrategy: new CamelCaseNamingStrategy());
         options.SerializerSettings.Converters.Add(converter);
     });
     services.AddApiVersioningExtension();
     services.AddHealthChecks();
 }
Esempio n. 24
0
        public DefaultResolver(TypeCache typeCache)
        {
            StringEnumConverter         = new StringEnumConverter();
            TypeConverter               = new TypeConverter();
            AsyncEnumerableConverter    = new AsyncEnumerableConverter();
            HeadersConverter            = new HeadersConverter();
            ContentTypeConverter        = new ContentTypeConverter();
            ContentTypesConverter       = new ContentTypesConverter();
            ToStringConverter           = new ToStringConverter();
            AggregatorTemplateConverter = new AggregatorTemplateConverter();

            TypeCache          = typeCache;
            DateTimeConverters = new Dictionary <string, DateTimeConverter>();
        }
Esempio n. 25
0
        /// <summary>
        /// Dynamically creates an instance of JSON.NET
        /// </summary>
        /// <param name="throwExceptions">If true throws exceptions otherwise returns null</param>
        /// <returns>Dynamic JsonSerializer instance</returns>
        public static JsonSerializer CreateJsonNet(bool throwExceptions = true, bool camelCase = false)
        {
            if (JsonNet != null)
            {
                return(JsonNet);
            }

            lock (SyncLock)
            {
                if (JsonNet != null)
                {
                    return(JsonNet);
                }

                // Try to create instance
                JsonSerializer json;
                try
                {
                    json = new JsonSerializer();
                }
                catch
                {
                    if (throwExceptions)
                    {
                        throw;
                    }
                    return(null);
                }

                if (json == null)
                {
                    return(null);
                }

                json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

                // Enums as strings in JSON
                var enumConverter = new StringEnumConverter();
                json.Converters.Add(enumConverter);

                if (camelCase)
                {
                    json.ContractResolver = new CamelCasePropertyNamesContractResolver();
                }

                JsonNet = json;
            }

            return(JsonNet);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            switch (reader.Value)
            {
            case "10KG":
                return(ParcelType.UPS_10KG);

            case "25KG":
                return(ParcelType.UPS_25KG);

            default:
                var converter = new StringEnumConverter();
                return(converter.ReadJson(reader, objectType, existingValue, serializer));
            }
        }
Esempio n. 27
0
        public void EnumMemberWithNumbers()
        {
            StringEnumConverter converter = new StringEnumConverter();

            NumberNamesEnum e = JsonConvert.DeserializeObject <NumberNamesEnum>("\"1\"", converter);

            Assert.AreEqual(NumberNamesEnum.second, e);

            e = JsonConvert.DeserializeObject <NumberNamesEnum>("\"2\"", converter);

            Assert.AreEqual(NumberNamesEnum.first, e);

            e = JsonConvert.DeserializeObject <NumberNamesEnum>("\"3\"", converter);

            Assert.AreEqual(NumberNamesEnum.third, e);
        }
Esempio n. 28
0
        static ClientModel()
        {
            DefaultJsonSerializerSetting = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),

                Error = delegate(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
                {
                    args.ErrorContext.Handled = true;
                }
            };
            var enumConverter = new StringEnumConverter();

            enumConverter.CamelCaseText = true;
            DefaultJsonSerializerSetting.Converters.Add(enumConverter);
        }
Esempio n. 29
0
        private void Send(CowMessage cowMessage)
        {
            var cowStringEnumConvertor = new StringEnumConverter {
                CamelCaseText = false
            };
            var jsonSerializerSettings = new JsonSerializerSettings
            {
                Formatting        = Formatting.None,
                NullValueHandling = NullValueHandling.Ignore
            };

            jsonSerializerSettings.Converters.Add(cowStringEnumConvertor);
            var message = JsonConvert.SerializeObject(cowMessage, jsonSerializerSettings);

            _proxy.Invoke("Send", message);
        }
Esempio n. 30
0
        private static JsonSerializerSettings CreateDefaultSerializerSettings()
        {
            var serializingSettings = new JsonSerializerSettings
            {
                Formatting        = Formatting.None,
                NullValueHandling = NullValueHandling.Ignore
            };

            var enumConverter = new StringEnumConverter {
                AllowIntegerValues = false
            };

            serializingSettings.Converters.Add(enumConverter);

            return(serializingSettings);
        }