Example #1
0
 public override IConfigurationCollection <TElement> ReadJson(global::Newtonsoft.Json.JsonReader reader, Type objectType, [AllowNull] IConfigurationCollection <TElement> existingValue, bool hasExistingValue, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     throw new NotImplementedException();
 }
Example #2
0
        public override void WriteJson(global::Newtonsoft.Json.JsonWriter writer, [AllowNull] IConfigurationCollection <TElement> value, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            if (ReferenceEquals(value, null))
            {
                writer.WriteNull();
                return;
            }

            writer.WriteStartArray();

            foreach (var item in value)
            {
                if (ReferenceEquals(value, null))
                {
                    writer.WriteNull();
                }
                else
                {
                    serializer.Serialize(writer, item);
                }
            }

            writer.WriteEndArray();
        }
        /// <summary>
        /// Reads the JSON representation of the object.
        /// </summary>
        /// <param name = "reader">The <see cref = "T:Newtonsoft.Json.JsonReader"/> to read from.</param>
        /// <param name = "objectType">Type of the object.</param>
        /// <param name = "existingValue">The existing value of object being read.</param>
        /// <param name = "serializer">The calling serializer.</param>
        /// <returns>
        /// The object value.
        /// </returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            object target = null;

            if (reader.TokenType != JsonToken.Null)
            {
                JObject jObject = JObject.Load(reader);
                var     session = new Session();
                serializer.Populate(jObject.CreateReader(), session);
                if (jObject[Session.SCHEME_KEY] != null)
                {
                    var authenticationScheme = jObject[Session.SCHEME_KEY].ToObject <AuthenticationScheme>();
                    if (TypeUtil.TryGetTypeForAuthenticationScheme(authenticationScheme, out var authenticationType))
                    {
                        session.Authentication = (Authentication)Activator.CreateInstance(authenticationType);
                        if (jObject[Session.AUTHENTICATION_KEY] != null)
                        {
                            serializer.Populate(jObject[Session.AUTHENTICATION_KEY].CreateReader(), session.Authentication);
                        }
                    }
                }

                target = session;
            }

            return(target);
        }
 public override void WriteJson(JsonWriter writer, object value, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     throw new NotImplementedException();
 }
Example #5
0
        public override void WriteJson(global::Newtonsoft.Json.JsonWriter writer, [AllowNull] IConfigurationDictionary <TElement> value, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            if (ReferenceEquals(value, null))
            {
                writer.WriteNull();
                return;
            }

            writer.WriteStartObject();

            foreach (var item in value)
            {
                writer.WritePropertyName(item.Key);
                serializer.Serialize(writer, item.Value);
            }

            writer.WriteEndObject();
        }
Example #6
0
 public override void WriteJson(global::Newtonsoft.Json.JsonWriter writer, PackageIdentifier value, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     if (writer is null)
     {
         throw new global::System.ArgumentNullException(nameof(writer));
     }
     if (value is null)
     {
         throw new global::System.ArgumentNullException(nameof(value));
     }
     if (serializer is null)
     {
         throw new global::System.ArgumentNullException(nameof(serializer));
     }
     serializer.Serialize(writer, value._value);
 }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NewtonsoftJsonSerializer"/> class.
 /// </summary>
 /// <param name="serializer">The serializer.</param>
 public NewtonsoftJsonSerializer(global::Newtonsoft.Json.JsonSerializer serializer)
 {
     _serializer = serializer;
 }
Example #8
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     byte[] bytes = null;
     if (reader.TokenType == JsonToken.StartObject)
     {
         reader.Read();
         if (reader.TokenType == JsonToken.PropertyName && reader.Value?.ToString() == "_placeholder")
         {
             reader.Read();
             if (reader.TokenType == JsonToken.Boolean && (bool)reader.Value)
             {
                 reader.Read();
                 if (reader.TokenType == JsonToken.PropertyName && reader.Value?.ToString() == "num")
                 {
                     reader.Read();
                     if (reader.Value != null)
                     {
                         if (int.TryParse(reader.Value.ToString(), out int num))
                         {
                             bytes = Bytes[num];
                             reader.Read();
                         }
                     }
                 }
             }
         }
     }
     return(bytes);
 }
Example #9
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            object target = null;

            if (reader.TokenType != JsonToken.Null)
            {
                // Initialize and populate the initial object
                target = Activator.CreateInstance(objectType);
                var jObject = JObject.Load(reader);
                serializer.Populate(jObject.CreateReader(), target);

                // Check if the 'type' property is present to the JSON
                JToken mediaTypeJToken;
                if (jObject.TryGetValue(DocumentContainer.TYPE_KEY, out mediaTypeJToken))
                {
                    // Find the document property
                    var documentProperty =
                        objectType
                        .GetProperties(BindingFlags.Public | BindingFlags.Instance)
                        .First(p => p.PropertyType == typeof(Document));

                    var documentPropertyName = documentProperty.Name.ToCamelCase();
                    var mediaType            = mediaTypeJToken.ToObject <MediaType>();

                    // Create the document instance
                    var document = jObject[documentPropertyName].ToDocument(mediaType, serializer);
                    documentProperty.SetValue(target, document);
                }
            }

            return(target);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="NewtonsoftJsonSerializer"/> class.
 /// </summary>
 /// <param name="serializer">The serializer.</param>
 public NewtonsoftJsonSerializer(global::Newtonsoft.Json.JsonSerializer serializer)
 {
     ContentType = "application/json";
     _serializer = serializer;
 }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            if (objectType.IsAbstract)
            {
                // The serialization is made by the container class (Message or Command)
                return(null);
            }

            var instance = Activator.CreateInstance(objectType);

            serializer.Populate(reader, instance);
            return(instance);
        }
 public DocumentJsonConverter(JsonSerializerSettings settings)
 {
     _alternativeSerializer = global::Newtonsoft.Json.JsonSerializer.Create(settings);
 }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
        {
            var instance = new DocumentCollection();
            var jObject  = JObject.Load(reader);

            if (jObject[DocumentCollection.ITEM_TYPE_KEY] != null)
            {
                instance.ItemType = jObject[DocumentCollection.ITEM_TYPE_KEY].ToObject <MediaType>();
            }

            if (jObject[DocumentCollection.ITEMS_KEY] != null && instance.ItemType != null)
            {
                var items = jObject[DocumentCollection.ITEMS_KEY];
                if (items.Type == JTokenType.Array)
                {
                    var itemsArray = (JArray)items;
                    instance.Items = new Document[itemsArray.Count];
                    for (var i = 0; i < itemsArray.Count; i++)
                    {
                        instance.Items[i] = itemsArray[i].ToDocument(instance.ItemType, serializer);
                    }
                }
            }

            if (jObject[DocumentCollection.TOTAL_KEY] != null)
            {
                instance.Total = jObject[DocumentCollection.TOTAL_KEY].ToObject <int>();
            }

            return(instance);
        }
Example #14
0
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     // The serialization is handled by the container class
     return(null);
 }
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, global::Newtonsoft.Json.JsonSerializer serializer)
 {
     if (reader.TokenType == JsonToken.String)
     {
         var tokenValue = reader.Value.ToString();
         return(CreateInstance(tokenValue));
     }
     else
     {
         return(null);
     }
 }