public DefaultsQueryStringParameterReader(IJsonApiOptions options)
        {
            ArgumentGuard.NotNull(options, nameof(options));

            _options = options;
            SerializerDefaultValueHandling = options.SerializerSettings.DefaultValueHandling;
        }
 public ResourceObjectBuilderSettings(
     NullValueHandling serializerNullValueHandling       = NullValueHandling.Include,
     DefaultValueHandling serializerDefaultValueHandling = DefaultValueHandling.Include)
 {
     SerializerNullValueHandling    = serializerNullValueHandling;
     SerializerDefaultValueHandling = serializerDefaultValueHandling;
 }
Example #3
0
 public static string ToJson <T>(this T obj, DefaultValueHandling defaultValueHandling)
 {
     return(JsonConvert.SerializeObject(obj, new JsonSerializerSettings
     {
         DefaultValueHandling = defaultValueHandling
     }));
 }
Example #4
0
        public static MemoryStream SerializeToMemoryStream <T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
                                                               NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
        {
            MemoryStream memoryStream = new MemoryStream();

            SerializeToStream(obj, memoryStream, defaultValueHandling, nullValueHandling, serializationBinder);
            return(memoryStream);
        }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling  = JsonSerializerSettings.DefaultReferenceLoopHandling;
     _missingMemberHandling  = JsonSerializerSettings.DefaultMissingMemberHandling;
     _nullValueHandling      = JsonSerializerSettings.DefaultNullValueHandling;
     _defaultValueHandling   = JsonSerializerSettings.DefaultDefaultValueHandling;
     _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
 }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = JsonSerializerSettings.DefaultReferenceLoopHandling;
       _missingMemberHandling = JsonSerializerSettings.DefaultMissingMemberHandling;
       _nullValueHandling = JsonSerializerSettings.DefaultNullValueHandling;
       _defaultValueHandling = JsonSerializerSettings.DefaultDefaultValueHandling;
       _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
 }
 public GraphsonJsonSerializer(
     DefaultValueHandling defaultValueHandling,
     IGremlinQueryEnvironment environment,
     IGremlinQueryFragmentDeserializer fragmentDeserializer)
 {
     DefaultValueHandling = defaultValueHandling;
     ContractResolver     = new GremlinContractResolver(environment.Model.PropertiesModel);
     Converters.Add(new JTokenConverterConverter(fragmentDeserializer, environment));
 }
Example #8
0
        public void Reader_Read_Succeeds(string parameterName, string parameterValue, DefaultValueHandling expectedValue)
        {
            // Act
            _reader.Read(parameterName, parameterValue);

            DefaultValueHandling handling = _reader.SerializerDefaultValueHandling;

            // Assert
            handling.Should().Be(expectedValue);
        }
        public DefaultsService GetService(DefaultValueHandling defaultValue, bool allowOverride)
        {
            var options = new JsonApiOptions
            {
                SerializerSettings = { DefaultValueHandling = defaultValue },
                AllowQueryStringOverrideForSerializerDefaultValueHandling = allowOverride
            };

            return(new DefaultsService(options));
        }
        /// <inheritdoc />
        public virtual void Read(string parameterName, StringValues parameterValue)
        {
            if (!bool.TryParse(parameterValue, out bool result))
            {
                throw new InvalidQueryStringParameterException(parameterName, "The specified defaults is invalid.",
                                                               $"The value '{parameterValue}' must be 'true' or 'false'.");
            }

            SerializerDefaultValueHandling = result ? DefaultValueHandling.Include : DefaultValueHandling.Ignore;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling = JsonSerializerSettings.DefaultReferenceLoopHandling;
       _missingMemberHandling = JsonSerializerSettings.DefaultMissingMemberHandling;
       _nullValueHandling = JsonSerializerSettings.DefaultNullValueHandling;
       _defaultValueHandling = JsonSerializerSettings.DefaultDefaultValueHandling;
       _objectCreationHandling = JsonSerializerSettings.DefaultObjectCreationHandling;
       _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
       _typeNameHandling = JsonSerializerSettings.DefaultTypeNameHandling;
       _binder = DefaultSerializationBinder.Instance;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
 /// </summary>
 public JsonSerializer()
 {
     _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
     _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
     _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
     _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
     _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
     _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
     _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
     _binder = DefaultSerializationBinder.Instance;
 }
Example #13
0
 public static void SerializeToStream <T>(T obj, Stream stream, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
                                          NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
 {
     if (stream != null)
     {
         using (StreamWriter streamWriter = new StreamWriter(stream))
         {
             Serialize(obj, streamWriter, defaultValueHandling, nullValueHandling, serializationBinder);
         }
     }
 }
        /// <inheritdoc/>
        public virtual void Parse(string parameterName, StringValues parameterValue)
        {
            if (!bool.TryParse(parameterValue, out var result))
            {
                throw new InvalidQueryStringParameterException(parameterName,
                                                               "The specified query string value must be 'true' or 'false'.",
                                                               $"The value '{parameterValue}' for parameter '{parameterName}' is not a valid boolean value.");
            }

            SerializerDefaultValueHandling = result ? DefaultValueHandling.Include : DefaultValueHandling.Ignore;
        }
Example #15
0
        public static string SerializeToString <T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
                                                   NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
        {
            StringBuilder sb = new StringBuilder();

            using (StringWriter stringWriter = new StringWriter(sb))
            {
                Serialize(obj, stringWriter, defaultValueHandling, nullValueHandling, serializationBinder);
            }

            return(sb.ToString());
        }
Example #16
0
        public JsonObjectContractBuilder <T> AddProperty <TProp>
            (String propName,
            Func <T, TProp> get,
            Required required = Required.Always,
            DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
            Object?defaultValue = null)
        {
            var prop = CreateProperty(propName, get, required, defaultValueHandling, defaultValue);

            contract.Properties.AddProperty(prop);
            return(this);
        }
Example #17
0
 public JsonSerializer()
 {
     this._referenceLoopHandling      = ReferenceLoopHandling.Error;
     this._missingMemberHandling      = MissingMemberHandling.Ignore;
     this._nullValueHandling          = NullValueHandling.Include;
     this._defaultValueHandling       = DefaultValueHandling.Include;
     this._objectCreationHandling     = ObjectCreationHandling.Auto;
     this._preserveReferencesHandling = PreserveReferencesHandling.None;
     this._constructorHandling        = ConstructorHandling.Default;
     this._typeNameHandling           = TypeNameHandling.None;
     this._context = JsonSerializerSettings.DefaultContext;
     this._binder  = (SerializationBinder)DefaultSerializationBinder.Instance;
 }
Example #18
0
        public static void SerializeToFile <T>(T obj, string filePath, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
                                               NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
        {
            if (!string.IsNullOrEmpty(filePath))
            {
                FileHelpers.CreateDirectoryFromFilePath(filePath);

                using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, FileOptions.WriteThrough))
                {
                    SerializeToStream(obj, fileStream, defaultValueHandling, nullValueHandling, serializationBinder);
                }
            }
        }
Example #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            this._referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            this._missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            this._nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            this._defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            this._objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            this._preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            this._constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            this._typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            this.Context = JsonSerializerSettings.DefaultContext;

            this._binder = DefaultSerializationBinder.Instance;
        }
Example #20
0
        /// <summary>
        /// Tests the DefaultValueHandling property in a JSON serializer settings object.
        /// </summary>
        /// <param name="defaultValueHandling">Expected DefaultValueHandling.</param>
        /// <returns>The same JSON serializer settings test builder.</returns>
        public IAndJsonSerializerSettingsTestBuilder WithDefaultValueHandling(DefaultValueHandling defaultValueHandling)
        {
            this.jsonSerializerSettings.DefaultValueHandling = defaultValueHandling;
            this.validations.Add((expected, actual) =>
            {
                if (!CommonValidator.CheckEquality(expected.DefaultValueHandling, actual.DefaultValueHandling))
                {
                    this.ThrowNewJsonResultAssertionException(
                        string.Format("{0} default value handling", expected.DefaultValueHandling),
                        string.Format("in fact found {0}", actual.DefaultValueHandling));
                }
            });

            return(this);
        }
Example #21
0
        public T Deserialize <T>(string json, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore)
        {
            var settings = new JsonSerializerSettings {
                DefaultValueHandling = defaultValueHandling
            };

            try
            {
                return(JsonConvert.DeserializeObject <T>(json, settings));
            }
            catch (JsonException ex)
            {
                throw new Exception("Exeption caught while deserializing!", ex);
            }
        }
        public void Parse_QueryConfigWithApiSettings_Succeeds(string queryValue, DefaultValueHandling defaultValue, bool allowOverride, DefaultValueHandling expected)
        {
            // Arrange
            const string parameterName = "defaults";
            var          service       = GetService(defaultValue, allowOverride);

            // Act
            if (service.CanParse(parameterName) && service.IsEnabled(DisableQueryAttribute.Empty))
            {
                service.Parse(parameterName, queryValue);
            }

            // Assert
            Assert.Equal(expected, service.SerializerDefaultValueHandling);
        }
        private static void WriteJson(
            object obj,
            string filename,
            DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include)
        {
            var settings = new JsonSerializerSettings
            {
                DateTimeZoneHandling = DateTimeZoneHandling.Utc,
                DefaultValueHandling = defaultValueHandling,
                Formatting           = Formatting.Indented,
            };

            var json = JsonConvert.SerializeObject(obj, settings);

            File.WriteAllText($"{filename}.json", json);
        }
Example #24
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonSerializer"/> class.
        /// </summary>
        public JsonSerializer()
        {
            _referenceLoopHandling      = JsonSerializerSettings.DefaultReferenceLoopHandling;
            _missingMemberHandling      = JsonSerializerSettings.DefaultMissingMemberHandling;
            _nullValueHandling          = JsonSerializerSettings.DefaultNullValueHandling;
            _defaultValueHandling       = JsonSerializerSettings.DefaultDefaultValueHandling;
            _objectCreationHandling     = JsonSerializerSettings.DefaultObjectCreationHandling;
            _preserveReferencesHandling = JsonSerializerSettings.DefaultPreserveReferencesHandling;
            _constructorHandling        = JsonSerializerSettings.DefaultConstructorHandling;
            _typeNameHandling           = JsonSerializerSettings.DefaultTypeNameHandling;
            _metadataPropertyHandling   = JsonSerializerSettings.DefaultMetadataPropertyHandling;
            _context = JsonSerializerSettings.DefaultContext;
            _binder  = DefaultSerializationBinder.Instance;

            _culture          = JsonSerializerSettings.DefaultCulture;
            _contractResolver = DefaultContractResolver.Instance;
        }
Example #25
0
 public T Deserialize <T>(Stream source, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, bool leaveOpen = false)
 {
     try
     {
         using (var reader = new JsonTextReader(new StreamReader(source, Encoding.UTF8, false, 1024, leaveOpen)))
         {
             var serializer = new JsonSerializer {
                 TypeNameHandling = TypeNameHandling.Auto, DefaultValueHandling = defaultValueHandling
             };
             return(serializer.Deserialize <T>(reader));
         }
     }
     catch (JsonException ex)
     {
         throw new Exception("Exeption caught while deserializing!", ex);
     }
 }
Example #26
0
 static JsonProperty CreateProperty <TProp>
     (String propName,
     Func <T, TProp> get,
     Required required = Required.Always,
     DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
     Object?defaultValue = null) =>
 new JsonProperty
 {
     PropertyName         = propName,
     UnderlyingName       = propName,
     PropertyType         = typeof(TProp),
     DeclaringType        = typeof(T),
     Readable             = true,
     Writable             = false,
     ValueProvider        = new ReadOnlyValueProvider <T, TProp>(get),
     Required             = required,
     DefaultValueHandling = defaultValueHandling,
     DefaultValue         = defaultValue
 };
Example #27
0
        public void Reader_Outcome(string queryStringParameterValue, DefaultValueHandling optionsDefaultValue, bool optionsAllowOverride, DefaultValueHandling expected)
        {
            // Arrange
            var options = new JsonApiOptions
            {
                SerializerSettings = { DefaultValueHandling = optionsDefaultValue },
                AllowQueryStringOverrideForSerializerDefaultValueHandling = optionsAllowOverride
            };

            var reader = new DefaultsQueryStringParameterReader(options);

            // Act
            if (reader.IsEnabled(DisableQueryStringAttribute.Empty))
            {
                reader.Read("defaults", queryStringParameterValue);
            }

            // Assert
            reader.SerializerDefaultValueHandling.Should().Be(expected);
        }
Example #28
0
        /// <summary>
        /// Get a serializer suited for two-way serialization of .NET types.
        /// </summary>
        /// <returns></returns>
        public static JsonSerializer Serializer(
            TypeNameHandling typeNameHandling           = TypeNameHandling.Arrays,
            FormatterAssemblyStyle assemblyNameType     = FormatterAssemblyStyle.Simple,
            NullValueHandling nullValueHandling         = NullValueHandling.Ignore,
            DefaultValueHandling defaultValueHandling   = DefaultValueHandling.Ignore,
            MissingMemberHandling missingMemberHandling = MissingMemberHandling.Ignore,
            ReferenceLoopHandling loopHandling          = ReferenceLoopHandling.Ignore)
        {
            var result = new JsonSerializer
            {
                MissingMemberHandling  = missingMemberHandling,
                NullValueHandling      = nullValueHandling,
                ReferenceLoopHandling  = loopHandling,
                DefaultValueHandling   = defaultValueHandling,
                TypeNameHandling       = typeNameHandling,
                TypeNameAssemblyFormat = assemblyNameType
            };

            result.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
            return(result);
        }
Example #29
0
        public static void Serialize <T>(T obj, TextWriter textWriter, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
                                         NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
        {
            if (textWriter != null)
            {
                using (JsonTextWriter jsonTextWriter = new JsonTextWriter(textWriter))
                {
                    jsonTextWriter.Formatting = Formatting.Indented;

                    JsonSerializer serializer = new JsonSerializer();
                    serializer.ContractResolver = new WritablePropertiesOnlyResolver();
                    serializer.Converters.Add(new StringEnumConverter());
                    serializer.DefaultValueHandling = defaultValueHandling;
                    serializer.NullValueHandling    = nullValueHandling;
                    if (serializationBinder != null)
                    {
                        serializer.SerializationBinder = serializationBinder;
                    }
                    serializer.Serialize(jsonTextWriter, obj);
                }
            }
        }
 private bool HasFlag(DefaultValueHandling value, DefaultValueHandling flag)
 {
   return ((value & flag) == flag);
 }
 private bool HasFlag(DefaultValueHandling value, DefaultValueHandling flag)
 {
     return((value & flag) == flag);
 }
Example #32
0
 public RestSharpJsonNetSerializer(MissingMemberHandling missingMemberHandling, NullValueHandling nullValueHandling, DefaultValueHandling defaultValueHandling)
 {
     ContentType = "application/json";
     _serializer = new Newtonsoft.Json.JsonSerializer
     {
         MissingMemberHandling = missingMemberHandling,
         NullValueHandling     = nullValueHandling,
         DefaultValueHandling  = defaultValueHandling
     };
 }
Example #33
0
 public new IMemberConfiguration <TModel, TType> DefaultValueHandling(DefaultValueHandling valueHandling)
 {
     base.DefaultValueHandling = valueHandling;
     return(this);
 }