Example #1
0
        void IJsonSerializable.Serialize(JsonWriter writer)
        {
            // Types
            if (Types != null && Types.Any())
            {
                writer.WritePropertyName("types");
                writer.WriteStartObject();
                foreach (var type in Types)
                {
                    writer.WritePropertyName(type);
                    writer.WriteRawValue(GetTypeJson(type));
                }
                writer.WriteEndObject();
            }

            if (Instances != null && Instances.Any())
            {
                writer.WritePropertyName("instances");
                writer.WriteStartObject();

                foreach (var typeItem in Instances)
                {
                    writer.WritePropertyName(typeItem.Key);
                    writer.WriteStartObject();

                    // Serialize static property values
                    if (typeItem.Value.StaticProperties.Count > 0)
                    {
                        writer.WritePropertyName("static");
                        writer.Serialize(
                            typeItem.Value.StaticProperties.ToDictionary(
                            property => property.Name,
                            property => JsonConverter.GetPropertyValue(property, property.DeclaringType)));
                    }

                    // Serialize instances
                    foreach (var instanceItem in typeItem.Value.Instances)
                    {
                        writer.WritePropertyName(instanceItem.Key);
                        writer.Serialize(instanceItem.Value);
                    }

                    writer.WriteEndObject();
                }

                writer.WriteEndObject();
            }

            if (Conditions != null && Conditions.Any())
            {
                writer.WritePropertyName("conditions");
                writer.Serialize(Conditions);
            }

            if (Events != null && Events.Any())
            {
                writer.WritePropertyName("events");
                writer.Serialize(Events);
            }

            if (Model != null && Model.Any())
            {
                writer.WritePropertyName("model");
                writer.Serialize(Model);
            }

            if (ServerInfo != null)
            {
                writer.WritePropertyName("serverInfo");
                writer.Serialize(ServerInfo);
            }

            if (Changes != null && Changes.Any())
            {
                writer.WritePropertyName("changes");
                writer.Serialize(Changes.Where(modelEvent => !(modelEvent is ModelValueChangeEvent) || ExoWeb.IncludeInClientModel(((ModelValueChangeEvent)modelEvent).Property)));
            }
        }
Example #2
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((JsonConvert.ToString((char)value)));
 }
Example #3
0
 /// <summary>
 /// To write the JSON string
 /// </summary>
 /// <param name="writer">JSON writer</param>
 /// <param name="value">Object to be converted into a JSON string</param>
 /// <param name="serializer">JSON Serializer</param>
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((String)(typeof(Quadrilateral).GetMethod("ToJson").Invoke(value, null)));
 }
Example #4
0
 public override void WriteRawValue(string json)
 {
     _textWriter.WriteRawValue(json);
     _innerWriter.WriteRawValue(json);
     base.WriteRawValue(json);
 }
Example #5
0
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        string json = (value as BsonDocument).ToJson();

        writer.WriteRawValue(json);
    }
Example #6
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(new DateTimeOffset((DateTime)value).ToUnixTimeSeconds().ToString());
 }
Example #7
0
 public override void WriteRawValue(string json)
 {
     _innerWriter.WriteRawValue(json);
 }
Example #8
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((((DateTime)value - Epoch).TotalSeconds).ToString(CultureInfo.InvariantCulture));
 }
Example #9
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(((DateTime)value).GetMillisecondsSinceEpoch().ToString());
 }
Example #10
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(@"""\/Date(" + EpochTime.ConvertDateTimeToEpoch((DateTime)value).ToString() + @")\/""");
 }
        ////public override object ReadJson(JsonReader reader, Type objectType, JsonSerializer serializer)
        ////{
        ////    throw new NotImplementedException();
        ////}

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            writer.WriteRawValue((value as JSFunction).Definition);
        }
Example #12
0
        public override void WriteJson(JsonWriter writer, object value)
        {
            IList items = (IList)value;

            if (value != null && items.Count > 0)
            {
                if (items.Count == 1 && !CanBeSingleItemArray(items[0]))
                {
                    Control item = (Control)items[0];
                    Tab     tab  = item as Tab;
                    if (!item.Visible || (tab != null && tab.Hidden))
                    {
                        writer.WriteNull();
                        return;
                    }

                    /// TODO: Check for ToolkbarBase because ExtJS can not render a Toolbar with xtype.
                    /// Make a "new" constructor instead of lazy instanciation.
                    if (items[0] is ToolbarBase)
                    {
                        object[] attrs = items[0].GetType().GetCustomAttributes(typeof(InstanceOfAttribute), true);

                        string instanceOf = "Ext.Toolbar";

                        if (attrs.Length == 1)
                        {
                            string temp = ((InstanceOfAttribute)attrs[0]).ClassName;

                            if (!string.IsNullOrEmpty(temp))
                            {
                                instanceOf = temp;
                            }
                        }

                        writer.WriteStartConstructor(instanceOf);
                        writer.WriteRawValue(this.Format(items[0] as Control));
                        writer.WriteEndConstructor();
                    }
                    else
                    {
                        writer.WriteRawValue(this.Format(items[0] as Control));
                    }
                }
                else
                {
                    bool visible = false;

                    foreach (Observable item in items)
                    {
                        Tab tab = item as Tab;
                        if (item.Visible && (tab == null || !tab.Hidden))
                        {
                            visible = true;
                        }
                    }

                    if (visible)
                    {
                        writer.WriteStartArray();

                        foreach (Observable item in items)
                        {
                            Tab tab = item as Tab;
                            if (item.Visible && (tab == null || !tab.Hidden))
                            {
                                writer.WriteRawValue(this.Format(item));
                            }
                        }

                        writer.WriteEndArray();
                    }
                    else
                    {
                        writer.WriteNull();
                    }
                }
            }
        }
Example #13
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(((decimal)value).ToString("F2", CultureInfo.InvariantCulture));
 }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var microseconds = ((TimeSpan)value).ToMicroseconds();

            writer.WriteRawValue(microseconds.ToString());
        }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     string s = Enum.GetName(value.GetType(), value);
     //writer.WriteValue(s.LowerCaseFirst());
     writer.WriteRawValue(s.LowerCaseFirst());
 }
Example #16
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            ElasticQuery term = (ElasticQuery)value;

            if (term != null)
            {
                writer.WriteStartObject();

                writer.WriteRaw("\"from\": " + term.From);
                writer.WriteRaw(",\"size\": " + term.Size + ",");
                writer.WritePropertyName("query");
                serializer.Serialize(writer, term.Query);

                if (term.Fields != null && term.Fields.Count > 0)
                {
                    writer.WritePropertyName("fields");
                    writer.WriteStartArray();
                    foreach (var field in term.Fields)
                    {
                        writer.WriteRawValue("\"" + field + "\"");
                    }
                    writer.WriteEndArray();
                }
                if (term.SortItems != null && term.SortItems.Count > 0)
                {
                    writer.WritePropertyName("sort");
                    writer.WriteStartObject();
                    foreach (var sortItem in term.SortItems)
                    {
                        if (sortItem != null)
                        {
                            writer.WritePropertyName(sortItem.FieldName);
                            writer.WriteValue(sortItem.SortType.ToString().ToLower());
                        }
                    }

                    writer.WriteEndObject();
                }

                //facets
                if (term.Facets != null)
                {
                    writer.WritePropertyName("facets");
                    serializer.Serialize(writer, term.Facets);
                }

                //hightlight
                if (term.Hightlight != null)
                {
                    writer.WritePropertyName("highlight");
                    serializer.Serialize(writer, term.Hightlight);
                }

                if (term.Explain)
                {
                    writer.WriteRaw(",\"explain\": " + term.Explain.ToString().ToLower());
                }

                writer.WriteEndObject();
            }
        }
    private void SerializeValue(JsonWriter writer, object value, JsonConverter memberConverter)
    {
      JsonConverter converter = memberConverter;

      if (value == null)
      {
        writer.WriteNull();
      }
      else if (converter != null
        || _serializer.HasClassConverter(value.GetType(), out converter)
        || _serializer.HasMatchingConverter(value.GetType(), out converter))
      {
        SerializeConvertable(writer, converter, value);
      }
      else if (JsonConvert.IsJsonPrimitive(value))
      {
        writer.WriteValue(value);
      }
      else if (value is JToken)
      {
        ((JToken)value).WriteTo(writer, (_serializer.Converters != null) ? _serializer.Converters.ToArray() : null);
      }
      else if (value is JsonRaw)
      {
        writer.WriteRawValue(((JsonRaw)value).Content);
      }
      else
      {
        JsonContract contract = _serializer.ContractResolver.ResolveContract(value.GetType());

        if (contract is JsonObjectContract)
        {
          SerializeObject(writer, value, (JsonObjectContract)contract);
        }
        else if (contract is JsonDictionaryContract)
        {
          SerializeDictionary(writer, (IDictionary)value, (JsonDictionaryContract)contract);
        }
        else if (contract is JsonArrayContract)
        {
          if (value is IList)
          {
            SerializeList(writer, (IList)value, (JsonArrayContract)contract);
          }
          else if (value is IEnumerable)
          {
            SerializeEnumerable(writer, (IEnumerable)value, (JsonArrayContract)contract);
          }
          else
          {
            throw new Exception("Cannot serialize '{0}' into a JSON array. Type does not implement IEnumerable.".FormatWith(CultureInfo.InvariantCulture, value.GetType()));
          }
        }
      }
    }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var substracted = ((DateTime)value).Subtract(BitfinexTime.UnixBase);

            writer.WriteRawValue(substracted.TotalMilliseconds.ToString(CultureInfo.InvariantCulture));
        }
Example #19
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(((DateTime)value - _epoch).TotalMilliseconds + "000");
 }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(((double)value).ToString("0.000000", System.Globalization.CultureInfo.InvariantCulture));
 }
        /// <summary>
        /// Converts <see cref="Twin"/> to its equivalent Json representation.
        /// </summary>
        /// <param name="writer">the Json writer.</param>
        /// <param name="value">the <see cref="Twin"/> to convert.</param>
        /// <param name="serializer">the Json serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                return;
            }

            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (serializer == null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            var twin = value as Twin;

            if (twin == null)
            {
                throw new InvalidOperationException("Object passed is not of type Twin.");
            }

            writer.WriteStartObject();

            if (!string.IsNullOrWhiteSpace(twin.ModelId))
            {
                writer.WritePropertyName(ModelId);
                writer.WriteValue(twin.ModelId);
            }

            writer.WritePropertyName(DeviceIdJsonTag);
            writer.WriteValue(twin.DeviceId);

            if (!string.IsNullOrWhiteSpace(twin.ModuleId))
            {
                writer.WritePropertyName(ModuleIdJsonTag);
                writer.WriteValue(twin.ModuleId);
            }

            writer.WritePropertyName(ETagJsonTag);
            writer.WriteValue(twin.ETag);

            writer.WritePropertyName(VersionTag);
            writer.WriteValue(twin.Version);

            if (twin.Status != null)
            {
                writer.WritePropertyName(StatusTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.Status));
            }

            if (!string.IsNullOrWhiteSpace(twin.StatusReason))
            {
                writer.WritePropertyName(StatusReasonTag);
                writer.WriteValue(twin.StatusReason);
            }

            if (twin.StatusUpdatedTime != null)
            {
                writer.WritePropertyName(StatusUpdateTimeTag);
                writer.WriteValue(twin.StatusUpdatedTime);
            }

            if (twin.ConnectionState != null)
            {
                writer.WritePropertyName(ConnectionStateTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.ConnectionState, new StringEnumConverter()));
            }

            if (twin.LastActivityTime != null)
            {
                writer.WritePropertyName(LastActivityTimeTag);
                writer.WriteValue(twin.LastActivityTime);
            }

            if (twin.CloudToDeviceMessageCount != null)
            {
                writer.WritePropertyName(CloudToDeviceMessageCountTag);
                writer.WriteValue(twin.CloudToDeviceMessageCount);
            }

            if (twin.AuthenticationType != null)
            {
                writer.WritePropertyName(AuthenticationTypeTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.AuthenticationType));
            }

            if (twin.X509Thumbprint != null)
            {
                writer.WritePropertyName(X509ThumbprintTag);
                serializer.Serialize(writer, twin.X509Thumbprint);
            }

            if (twin.Configurations != null)
            {
                writer.WritePropertyName(ConfigurationsJsonTag);
                serializer.Serialize(writer, twin.Configurations, typeof(IDictionary <string, ConfigurationInfo>));
            }

            if (twin.Tags != null && twin.Tags.Count > 0)
            {
                writer.WritePropertyName(TagsJsonTag);
                serializer.Serialize(writer, twin.Tags, typeof(IDictionary <string, object>));
            }

            if (twin.Properties?.Desired != null || twin.Properties?.Reported != null)
            {
                writer.WritePropertyName(PropertiesJsonTag);
                writer.WriteStartObject();
                if (twin.Properties.Desired != null)
                {
                    writer.WritePropertyName(DesiredPropertiesJsonTag);
                    serializer.Serialize(writer, twin.Properties.Desired, typeof(TwinCollection));
                }

                if (twin.Properties.Reported != null)
                {
                    writer.WritePropertyName(ReportedPropertiesJsonTag);
                    serializer.Serialize(writer, twin.Properties.Reported, typeof(TwinCollection));
                }

                writer.WriteEndObject();
            }

            if (twin.DeviceScope != null)
            {
                writer.WritePropertyName(DeviceScope);
                serializer.Serialize(writer, twin.DeviceScope, typeof(string));
            }

            if (twin.ParentScopes != null && twin.ParentScopes.Any())
            {
                writer.WritePropertyName(ParentScopes);
                serializer.Serialize(writer, twin.ParentScopes, typeof(IList <string>));
            }

            writer.WriteEndObject();
        }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((string)value);
 }
        public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
        {
            JTokenType valueType = this._valueType;

            switch (valueType)
            {
            case JTokenType.Null:
                writer.WriteNull();
                return;

            case JTokenType.Undefined:
                writer.WriteUndefined();
                return;

            case JTokenType.Date:
            {
                IL_20:
                if (valueType == JTokenType.Comment)
                {
                    writer.WriteComment(this._value.ToString());
                    return;
                }
                JsonConverter matchingConverter;
                if (this._value != null && (matchingConverter = JsonSerializer.GetMatchingConverter(converters, this._value.GetType())) != null)
                {
                    matchingConverter.WriteJson(writer, this._value, new JsonSerializer());
                    return;
                }
                switch (this._valueType)
                {
                case JTokenType.Integer:
                    writer.WriteValue(Convert.ToInt64(this._value, CultureInfo.get_InvariantCulture()));
                    return;

                case JTokenType.Float:
                    writer.WriteValue(Convert.ToDouble(this._value, CultureInfo.get_InvariantCulture()));
                    return;

                case JTokenType.String:
                    writer.WriteValue((this._value == null) ? null : this._value.ToString());
                    return;

                case JTokenType.Boolean:
                    writer.WriteValue(Convert.ToBoolean(this._value, CultureInfo.get_InvariantCulture()));
                    return;

                case JTokenType.Date:
                    if (this._value is DateTimeOffset)
                    {
                        writer.WriteValue((DateTimeOffset)this._value);
                    }
                    else
                    {
                        writer.WriteValue(Convert.ToDateTime(this._value, CultureInfo.get_InvariantCulture()));
                    }
                    return;

                case JTokenType.Bytes:
                    writer.WriteValue((byte[])this._value);
                    return;

                case JTokenType.Guid:
                case JTokenType.Uri:
                case JTokenType.TimeSpan:
                    writer.WriteValue((this._value == null) ? null : this._value.ToString());
                    return;
                }
                throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", this._valueType, "Unexpected token type.");
            }

            case JTokenType.Raw:
                writer.WriteRawValue((this._value == null) ? null : this._value.ToString());
                return;
            }
            goto IL_20;
        }
Example #24
0
 public override void WriteJson(JsonWriter writer, object value,
                                JsonSerializer serializer)
 {
     writer.WriteRawValue(Google.Protobuf.JsonFormatter.Default
                          .Format((IMessage)value));
 }
Example #25
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(value.ToString());
 }
Example #26
0
        public override void WriteTo(JsonWriter writer, JsonConverterCollection converters)
        {
            switch (_valueType)
            {
            case JTokenType.Comment:
                writer.WriteComment(_value.ToString());
                return;

            case JTokenType.Raw:
                writer.WriteRawValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Null:
                writer.WriteNull();
                return;

            case JTokenType.Undefined:
                writer.WriteUndefined();
                return;
            }

            if (_value != null)
            {
                Type typeToFind = _value.GetType();

                // If we are using the default converters we will try to avoid repeatedly check the same types as
                // GetMatchingConverter is a costly call with a very low probability to hit (less than 1% in real scenarios).
                JsonConverter matchingConverter = JsonConverterCache.GetMatchingConverter(converters, typeToFind);
                if (matchingConverter != null)
                {
                    matchingConverter.WriteJson(writer, _value, JsonExtensions.CreateDefaultJsonSerializer());
                    return;
                }
            }

            switch (_valueType)
            {
            case JTokenType.Integer:
                writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Float:
                if (_value is decimal)
                {
                    writer.WriteValue((decimal)_value);
                    return;
                }
                if (_value is float)
                {
                    writer.WriteValue((float)_value);
                    return;
                }
                writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.String:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Boolean:
                writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Date:
#if !PocketPC && !NET20
                if (_value is DateTimeOffset)
                {
                    writer.WriteValue((DateTimeOffset)_value);
                }
                else
#endif
                writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Bytes:
                writer.WriteValue((byte[])_value);
                return;

            case JTokenType.Guid:
            case JTokenType.Uri:
            case JTokenType.TimeSpan:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;
            }

            throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type.");
        }
Example #27
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue(((int)((DateTime)value - _epoch).TotalSeconds).ToString());
 }
Example #28
0
 /// <summary>
 /// To write the JSON string
 /// </summary>
 /// <param name="writer">JSON writer</param>
 /// <param name="value">Object to be converted into a JSON string</param>
 /// <param name="serializer">JSON Serializer</param>
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((string)(typeof(KratosSubmitSelfServiceSettingsFlowBody).GetMethod("ToJson").Invoke(value, null)));
 }
Example #29
0
    private void SerializeValue(JsonWriter writer, object value, JsonConverter memberConverter)
    {
      JsonConverter converter;

      if (value == null)
      {
        writer.WriteNull();
      }
      else if (memberConverter != null)
      {
        memberConverter.WriteJson(writer, value);
      }
      else if (HasClassConverter(value.GetType(), out converter))
      {
        converter.WriteJson(writer, value);
      }
      else if (HasMatchingConverter(value.GetType(), out converter))
      {
        converter.WriteJson(writer, value);
      }
      else if (JavaScriptConvert.IsJsonPrimitive(value))
      {
        writer.WriteValue(value);
      }
      else if (value is IList)
      {
        SerializeList(writer, (IList)value);
      }
      else if (value is IDictionary)
      {
        SerializeDictionary(writer, (IDictionary)value);
      }
      else if (value is ICollection)
      {
        SerializeCollection(writer, (ICollection)value);
      }
      else if (value is IEnumerable)
      {
        SerializeEnumerable(writer, (IEnumerable)value);
      }
      else if (value is JsonRaw)
      {
        writer.WriteRawValue(((JsonRaw)value).Content);
      }
      else
      {
        SerializeObject(writer, value);
      }
    }
Example #30
0
 /// <summary>
 /// To write the JSON string
 /// </summary>
 /// <param name="writer">JSON writer</param>
 /// <param name="value">Object to be converted into a JSON string</param>
 /// <param name="serializer">JSON Serializer</param>
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRawValue((string)(typeof(NullableShape).GetMethod("ToJson").Invoke(value, null)));
 }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            List<Newtonsoft.Json.JsonConverter> myconverters = new List<Newtonsoft.Json.JsonConverter>();
            myconverters.Add(new CustomConvertersColorToRGB());
            myconverters.Add(new CustomConvertersAxis());
            myconverters.Add(new CustomConvertersLegend());
            myconverters.Add(new CustomConverterEnum());

            Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings()
            {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
                Converters = myconverters
            };

            TrendLine[] lines = value as TrendLine[];

            if (lines.Count() == 0) return;

            writer.WriteStartObject();

            for (int i = 0; i < lines.Count(); i++ )
            {
                writer.WritePropertyName(i.ToString());
                string json = Newtonsoft.Json.JsonConvert.SerializeObject(lines[i], Formatting.None, settings);
                json = BaseGVI.FixJSON(json);
                json = json.Trim('"');
                writer.WriteRawValue( json );
            }

            writer.WriteEndObject();
        }
Example #32
0
 public override void WriteJson(JsonWriter writer, TCollection?value, JsonSerializer serializer)
 {
     writer.WriteRawValue(JsonConvert.SerializeObject(value));
 }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer?.WriteRawValue(JsonConvert.SerializeObject(value, Formatting.None));
 }
Example #34
0
        /// <summary>
        /// Writes this token to a <see cref="JsonWriter"/>.
        /// </summary>
        /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
        /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
        public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
        {
            if (converters != null && converters.Length > 0 && _value != null)
            {
                JsonConverter matchingConverter = JsonSerializer.GetMatchingConverter(converters, _value.GetType());
                if (matchingConverter != null)
                {
                    matchingConverter.WriteJson(writer, _value, JsonSerializer.CreateDefault());
                    return;
                }
            }

            switch (_valueType)
            {
            case JTokenType.Comment:
                writer.WriteComment((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Raw:
                writer.WriteRawValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Null:
                writer.WriteNull();
                return;

            case JTokenType.Undefined:
                writer.WriteUndefined();
                return;

            case JTokenType.Integer:
#if !(NET20 || NET35 || PORTABLE40 || PORTABLE)
                if (_value is BigInteger)
                {
                    writer.WriteValue((BigInteger)_value);
                }
                else
#endif
                writer.WriteValue(Convert.ToInt64(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Float:
                if (_value is decimal)
                {
                    writer.WriteValue((decimal)_value);
                }
                else if (_value is double)
                {
                    writer.WriteValue((double)_value);
                }
                else if (_value is float)
                {
                    writer.WriteValue((float)_value);
                }
                else
                {
                    writer.WriteValue(Convert.ToDouble(_value, CultureInfo.InvariantCulture));
                }
                return;

            case JTokenType.String:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;

            case JTokenType.Boolean:
                writer.WriteValue(Convert.ToBoolean(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Date:
#if !NET20
                if (_value is DateTimeOffset)
                {
                    writer.WriteValue((DateTimeOffset)_value);
                }
                else
#endif
                writer.WriteValue(Convert.ToDateTime(_value, CultureInfo.InvariantCulture));
                return;

            case JTokenType.Bytes:
                writer.WriteValue((byte[])_value);
                return;

            case JTokenType.Guid:
            case JTokenType.Uri:
            case JTokenType.TimeSpan:
                writer.WriteValue((_value != null) ? _value.ToString() : null);
                return;
            }

            throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type.");
        }
Example #35
0
 /// <summary>
 /// Writes this token to a <see cref="JsonWriter"/>.
 /// </summary>
 /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
 /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     switch (_valueType)
       {
     case JsonTokenType.Comment:
       writer.WriteComment(_value.ToString());
       break;
     case JsonTokenType.Integer:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToInt64(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.Float:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToDouble(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.String:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(v.ToString()), _value);
       break;
     case JsonTokenType.Boolean:
       WriteConvertableValue(writer, converters, v => writer.WriteValue(Convert.ToBoolean(v, CultureInfo.InvariantCulture)), _value);
       break;
     case JsonTokenType.Date:
       WriteConvertableValue(writer, converters, v =>
       {
     if (v is DateTimeOffset)
       writer.WriteValue((DateTimeOffset)v);
     else
       writer.WriteValue(Convert.ToDateTime(v, CultureInfo.InvariantCulture));
       }, _value);
       break;
     case JsonTokenType.Raw:
       writer.WriteRawValue(_value.ToString());
       break;
     case JsonTokenType.Null:
       writer.WriteNull();
       break;
     case JsonTokenType.Undefined:
       writer.WriteUndefined();
       break;
     default:
       throw MiscellaneousUtils.CreateArgumentOutOfRangeException("TokenType", _valueType, "Unexpected token type.");
       }
 }
Example #36
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            string bdate = "\"" + ((DateTime)value).ToString("yyyy-MM-dd") + "\"";

            writer.WriteRawValue(bdate);
        }