Example #1
0
        /// <summary>
        /// Writes the start of a constructor with the given name.
        /// </summary>
        /// <param name="name">The name of the constructor.</param>
        public override void WriteStartConstructor(string name)
        {
            _writer.WriteStartConstructor(name);

            base.WriteStartConstructor(name);
            ValidateCurrentToken(JsonToken.StartConstructor, null, _writer.Top - 1);
        }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long ticks;

            if (value is DateTime)
            {
                var dateTime = (DateTime)value;
                var utcDateTime = dateTime.ToUniversalTime();
                ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTime);
            }
            else if (value is DateTimeOffset)
            {
                var dateTimeOffset = (DateTimeOffset)value;
                var utcDateTimeOffset = dateTimeOffset.ToUniversalTime();
                ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime);
            }
            else
            {
                throw new JsonSerializationException("Expected date object value.");
            }

            writer.WriteStartConstructor("Date");
            writer.WriteValue(ticks);
            writer.WriteEndConstructor();
        }
Example #3
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long   javaScriptTicks;
            object obj  = value;
            object obj1 = obj;

            if (!(obj is DateTime))
            {
                object obj2 = value;
                obj1 = obj2;
                if (!(obj2 is DateTimeOffset))
                {
                    throw new JsonSerializationException("Expected date object value.");
                }
                DateTimeOffset universalTime = ((DateTimeOffset)obj1).ToUniversalTime();
                javaScriptTicks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(universalTime.UtcDateTime);
            }
            else
            {
                javaScriptTicks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(((DateTime)obj1).ToUniversalTime());
            }
            writer.WriteStartConstructor("Date");
            writer.WriteValue(javaScriptTicks);
            writer.WriteEndConstructor();
        }
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      long ticks;

      if (value is DateTime)
      {
        DateTime dateTime = (DateTime)value;
        DateTime utcDateTime = dateTime.ToUniversalTime();
        ticks = JsonConvert.ConvertDateTimeToJavaScriptTicks(utcDateTime);
      }
#if !PocketPC && !NET20
      else if (value is DateTimeOffset)
      {
        DateTimeOffset dateTimeOffset = (DateTimeOffset)value;
        DateTimeOffset utcDateTimeOffset = dateTimeOffset.ToUniversalTime();
        ticks = JsonConvert.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime);
      }
#endif
      else
      {
        throw new JsonSerializationException("Expected date object value.");
      }

      writer.WriteStartConstructor("Date");
      writer.WriteValue(ticks);
      writer.WriteEndConstructor();
    }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long ticks;

            if (value is DateTime)
            {
                DateTime dateTime    = (DateTime)value;
                DateTime utcDateTime = dateTime.ToUniversalTime();
                ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTime);
            }
#if !NET20
            else if (value is DateTimeOffset)
            {
                DateTimeOffset dateTimeOffset    = (DateTimeOffset)value;
                DateTimeOffset utcDateTimeOffset = dateTimeOffset.ToUniversalTime();
                ticks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime);
            }
#endif
            else
            {
                throw new JsonSerializationException("Expected date object value.");
            }

            writer.WriteStartConstructor("Date");
            writer.WriteValue(ticks);
            writer.WriteEndConstructor();
        }
Example #6
0
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     writer.WriteStartConstructor(_name);
     foreach (JToken item in Children())
     {
         item.WriteTo(writer, converters);
     }
     writer.WriteEndConstructor();
 }
Example #7
0
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     writer.WriteStartConstructor(this._name);
     foreach (JToken jtoken in this.Children())
     {
         jtoken.WriteTo(writer, converters);
     }
     writer.WriteEndConstructor();
 }
Example #8
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, JsonConverterCollection converters)
        {
            writer.WriteStartConstructor(_name);

            foreach (JToken token in Children())
            {
                token.WriteTo(writer, converters);
            }

            writer.WriteEndConstructor();
        }
Example #9
0
        public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
        {
            writer.WriteStartConstructor(this._name);
            int count = this._values.Count;

            for (int i = 0; i < count; i++)
            {
                this._values[i].WriteTo(writer, converters);
            }
            writer.WriteEndConstructor();
        }
Example #10
0
        public override void WriteTo(JsonWriter writer)
        {
            writer.WriteStartConstructor(_name);

            foreach (JToken token in Children())
            {
                token.WriteTo(writer);
            }

            writer.WriteEndConstructor();
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (!(value is DateTime))
            {
                throw new JsonSerializationException("Expected date object value.");
            }
            long javaScriptTicks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(((DateTime)value).ToUniversalTime());

            writer.WriteStartConstructor("Date");
            writer.WriteValue(javaScriptTicks);
            writer.WriteEndConstructor();
        }
 // Token: 0x06000684 RID: 1668
 // RVA: 0x0003753C File Offset: 0x0003573C
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     if (!(value is DateTime))
     {
         throw new JsonSerializationException("Expected date object value.");
     }
     DateTime dateTime = ((DateTime)value).ToUniversalTime();
     long value2 = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(dateTime);
     writer.WriteStartConstructor("Date");
     writer.WriteValue(value2);
     writer.WriteEndConstructor();
 }
Example #13
0
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     writer.WriteStartConstructor(this._name);
     using (IEnumerator <JToken> enumerator = this.Children().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             enumerator.Current.WriteTo(writer, converters);
         }
     }
     writer.WriteEndConstructor();
 }
Example #14
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)
        {
            writer.WriteStartConstructor(Name);

            var count = _values.Count;

            for (var i = 0; i < count; i++)
            {
                _values[i].WriteTo(writer, converters);
            }

            writer.WriteEndConstructor();
        }
Example #15
0
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        var contract = serializer.ContractResolver.ResolveContract(value.GetType()) as JsonObjectContract;

        if (contract == null)
        {
            throw new JsonSerializationException(string.Format("Type {0} does not correspond to a JSON object.", value.GetType()));
        }
        // Possibly check whether JsonObjectAttribute is applied, and use JsonObjectAttribute.Title if present.
        writer.WriteStartConstructor(value.GetType().Name);
        foreach (var provider in contract.GetConstructorParameterValueProviders())
        {
            serializer.Serialize(writer, provider.GetValue(value));
        }
        writer.WriteEndConstructor();
    }
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     if (value is DateTime)
     {
         // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
         // Note: Where Date is called as a constructor with more than one argument, the specifed arguments represent local time.
         var date = ((DateTime)value).ToLocalTime();
         writer.WriteStartConstructor("Date");
         writer.WriteValue(date.Year);
         writer.WriteValue(date.Month - 1);
         writer.WriteValue(date.Day);
         if (!StripTimeOfDay)
         {
             var written = date.Date;
             var epsilon = new TimeSpan(TimeSpan.TicksPerMillisecond);
             // Only write hours, min, sec, ms if needed.
             if (date < written - epsilon || date > written + epsilon)
             {
                 writer.WriteValue(date.Hour);
                 written = written.AddHours(date.Hour);
             }
             if (date < written - epsilon || date > written + epsilon)
             {
                 writer.WriteValue(date.Minute);
                 written = written.AddMinutes(date.Minute);
             }
             if (date < written - epsilon || date > written + epsilon)
             {
                 writer.WriteValue(date.Second);
                 written = written.AddSeconds(date.Second);
             }
             if (date < written - epsilon || date > written + epsilon)
             {
                 writer.WriteValue(date.Millisecond);
                 written = written.AddMilliseconds(date.Millisecond);
             }
         }
         writer.WriteEndConstructor();
     }
     else
     {
         // DateTimeOffset
         base.WriteJson(writer, value, serializer);
     }
 }
Example #17
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var d = (DateTime)value;

            writer.WriteStartConstructor("Date");

            if (d.Kind == DateTimeKind.Utc)
            {
                writer.WriteValue(d.GetJavascriptTicks());
            }
            else
            {
                var args = "{0}, {1}, {2}, {3}, {4}, {5}, {6}".Fi(d.Year, d.Month - 1, d.Day, d.Hour, d.Minute, d.Second, d.Millisecond);
                writer.WriteRaw(args);
            }

            writer.WriteEndConstructor();
        }
		// Token: 0x060014BC RID: 5308 RVA: 0x0006E30C File Offset: 0x0006C50C
		public override void WriteJson(JsonWriter writer, [Nullable(2)] object value, JsonSerializer serializer)
		{
			long value2;
			if (value is DateTime)
			{
				value2 = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(((DateTime)value).ToUniversalTime());
			}
			else
			{
				if (!(value is DateTimeOffset))
				{
					throw new JsonSerializationException("Expected date object value.");
				}
				value2 = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(((DateTimeOffset)value).ToUniversalTime().UtcDateTime);
			}
			writer.WriteStartConstructor("Date");
			writer.WriteValue(value2);
			writer.WriteEndConstructor();
		}
Example #19
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long num;

            if (value is DateTime)
            {
                num = Class184.smethod_8(((DateTime)value).ToUniversalTime());
            }
            else
            {
                if (!(value is DateTimeOffset))
                {
                    throw new JsonSerializationException("Expected date object value.");
                }
                DateTimeOffset offset = (DateTimeOffset)value;
                num = Class184.smethod_8(offset.ToUniversalTime().UtcDateTime);
            }
            writer.WriteStartConstructor("Date");
            writer.WriteValue(num);
            writer.WriteEndConstructor();
        }
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    public override void WriteJson(JsonWriter writer, object value)
    {
      long ticks;

      if (value is DateTime)
      {
        DateTime dateTime = (DateTime)value;
        DateTime utcDateTime = dateTime.ToUniversalTime();
        ticks = JavaScriptConvert.ConvertDateTimeToJavaScriptTicks(utcDateTime);
      }
      else
      {
        DateTimeOffset dateTimeOffset = (DateTimeOffset)value;
        DateTimeOffset utcDateTimeOffset = dateTimeOffset.ToUniversalTime();
        ticks = JavaScriptConvert.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime);
      }

      writer.WriteStartConstructor("Date");
      writer.WriteValue(ticks);
      writer.WriteEndConstructor();
    }
Example #21
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        public override void WriteJson(JsonWriter writer, object value)
        {
            long ticks;

            if (value is DateTime)
            {
                DateTime dateTime    = (DateTime)value;
                DateTime utcDateTime = dateTime.ToUniversalTime();
                ticks = JavaScriptConvert.ConvertDateTimeToJavaScriptTicks(utcDateTime);
            }
            else
            {
                DateTimeOffset dateTimeOffset    = (DateTimeOffset)value;
                DateTimeOffset utcDateTimeOffset = dateTimeOffset.ToUniversalTime();
                ticks = JavaScriptConvert.ConvertDateTimeToJavaScriptTicks(utcDateTimeOffset.UtcDateTime);
            }

            writer.WriteStartConstructor("Date");
            writer.WriteValue(ticks);
            writer.WriteEndConstructor();
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long value2;

            if (value is DateTime)
            {
                DateTime dateTime = ((DateTime)value).ToUniversalTime();
                value2 = JsonConvert.ConvertDateTimeToJavaScriptTicks(dateTime);
            }
            else
            {
                if (!(value is DateTimeOffset))
                {
                    throw new Exception("Expected date object value.");
                }
                value2 = JsonConvert.ConvertDateTimeToJavaScriptTicks(((DateTimeOffset)value).ToUniversalTime().get_UtcDateTime());
            }
            writer.WriteStartConstructor("Date");
            writer.WriteValue(value2);
            writer.WriteEndConstructor();
        }
        /// <summary>Writes the JSON representation of the object.</summary>
        /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            long javaScriptTicks;

            switch (value)
            {
            case DateTime dateTime:
                javaScriptTicks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(dateTime.ToUniversalTime());
                break;

            case DateTimeOffset dateTimeOffset:
                javaScriptTicks = DateTimeUtils.ConvertDateTimeToJavaScriptTicks(dateTimeOffset.ToUniversalTime().UtcDateTime);
                break;

            default:
                throw new JsonSerializationException("Expected date object value.");
            }
            writer.WriteStartConstructor("Date");
            writer.WriteValue(javaScriptTicks);
            writer.WriteEndConstructor();
        }
Example #24
0
        public override void WriteJson(JsonWriter writer, object value)
        {
            if (value is DateTime)
            {
                DateTime date = (DateTime)value;

                if (date.Equals(DateTime.MinValue))
                {
                    writer.WriteRawValue("null");
                }
                else
                {
                    string template = (date.TimeOfDay == new TimeSpan(0, 0, 0)) ? "{0},{1},{2}" : "{0},{1},{2},{3},{4},{5}";

                    writer.WriteStartConstructor("Date");
                    writer.WriteRawValue(
                        string.Format(template, date.Year, date.Month - 1, date.Day,
                                      date.Hour, date.Minute, date.Second));
                    writer.WriteEndConstructor();
                }
            }
        }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            String isoDateTimeString;

            if (value is DateTime)
            {
                DateTime dateTime = (DateTime)value;

                if ((DateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal ||
                    (DateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal)
                {
                    dateTime = dateTime.ToUniversalTime();
                }

                isoDateTimeString = dateTime.ToString(DefaultDateTimeFormat);
            }
#if !PocketPC && !NET20
            else if (value is DateTimeOffset)
            {
                DateTimeOffset dateTimeOffset = (DateTimeOffset)value;

                if ((DateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal ||
                    (DateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal)
                {
                    dateTimeOffset = dateTimeOffset.ToUniversalTime();
                }

                isoDateTimeString = dateTimeOffset.ToString(DefaultDateTimeFormat);
            }
#endif
            else
            {
                throw new Exception("Expected date object value.");
            }

            writer.WriteStartConstructor("Date");
            writer.WriteValue(isoDateTimeString);
            writer.WriteEndConstructor();
        }
Example #26
0
        public void WriteStartElement(XName name)
        {
            if (_root)
            {
                _root = false;
                _elementStack.Push(ElementKind.Obj);
            }
            else
            {
                if (_writer.WriteState == WriteState.Array)
                {
                    _elementStack.Push(ElementKind.Ctor);
                    _writer.WriteStartConstructor(name.LocalName);
                }
                else
                {
                    _elementStack.Push(ElementKind.Obj);
                    WritePropertyName(name);
                }
            }

            _writer.WriteStartObject();
        }
Example #27
0
        public override void WriteTo(JsonWriter writer)
        {
            writer.WriteStartConstructor(_name);

              foreach (JToken token in Children())
              {
            token.WriteTo(writer);
              }

              writer.WriteEndConstructor();
        }
Example #28
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 #29
0
 public override void WriteStartConstructor(string name)
 {
     _textWriter.WriteStartConstructor(name);
     _innerWriter.WriteStartConstructor(name);
     base.WriteStartConstructor(name);
 }
    private void SerializeNode(JsonWriter writer, XmlNode node, bool writePropertyName)
    {
      switch (node.NodeType)
      {
        case XmlNodeType.Document:
        case XmlNodeType.DocumentFragment:
          SerializeGroupedNodes(writer, node);
          break;
        case XmlNodeType.Element:
          if (writePropertyName)
            writer.WritePropertyName(node.Name);

          if (ValueAttributes(node.Attributes).Count() == 0 && node.ChildNodes.Count == 1
                  && node.ChildNodes[0].NodeType == XmlNodeType.Text)
          {
            // write elements with a single text child as a name value pair
            writer.WriteValue(node.ChildNodes[0].Value);
          }
          else if (node.ChildNodes.Count == 0 && CollectionUtils.IsNullOrEmpty(node.Attributes))
          {
            // empty element
            writer.WriteNull();
          }
          else if (node.ChildNodes.OfType<XmlElement>().Where(x => x.Name.StartsWith("-")).Count() > 1)
          {
            XmlElement constructorValueElement = node.ChildNodes.OfType<XmlElement>().Where(x => x.Name.StartsWith("-")).First();
            string constructorName = constructorValueElement.Name.Substring(1);

            writer.WriteStartConstructor(constructorName);

            for (int i = 0; i < node.ChildNodes.Count; i++)
            {
              SerializeNode(writer, node.ChildNodes[i], false);
            }

            writer.WriteEndConstructor();
          }
          else
          {
            writer.WriteStartObject();

            for (int i = 0; i < node.Attributes.Count; i++)
            {
              SerializeNode(writer, node.Attributes[i], true);
            }

            SerializeGroupedNodes(writer, node);

            writer.WriteEndObject();
          }

          break;
        case XmlNodeType.Comment:
          if (writePropertyName)
            writer.WriteComment(node.Value);
          break;
        case XmlNodeType.Attribute:
        case XmlNodeType.Text:
        case XmlNodeType.CDATA:
        case XmlNodeType.ProcessingInstruction:
        case XmlNodeType.Whitespace:
        case XmlNodeType.SignificantWhitespace:
          if (node.Prefix == "xmlns" && node.Value == JsonNamespaceUri)
            break;
          else if (node.NamespaceURI == JsonNamespaceUri)
            break;

          if (writePropertyName)
            writer.WritePropertyName(GetPropertyName(node));
          writer.WriteValue(node.Value);
          break;
        case XmlNodeType.XmlDeclaration:
          XmlDeclaration declaration = (XmlDeclaration)node;
          writer.WritePropertyName(GetPropertyName(node));
          writer.WriteStartObject();

          if (!string.IsNullOrEmpty(declaration.Version))
          {
            writer.WritePropertyName("@version");
            writer.WriteValue(declaration.Version);
          }
          if (!string.IsNullOrEmpty(declaration.Encoding))
          {
            writer.WritePropertyName("@encoding");
            writer.WriteValue(declaration.Encoding);
          }
          if (!string.IsNullOrEmpty(declaration.Standalone))
          {
            writer.WritePropertyName("@standalone");
            writer.WriteValue(declaration.Standalone);
          }

          writer.WriteEndObject();
          break;
        default:
          throw new JsonSerializationException("Unexpected XmlNodeType when serializing nodes: " + node.NodeType);
      }
    }
Example #31
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)
        {
            writer.WriteStartConstructor(_name);

            foreach (JToken token in Children())
            {
            token.WriteTo(writer, converters);
            }

            writer.WriteEndConstructor();
        }
 /// <inheritdoc />
 public override void WriteStartConstructor(String name) => _writer.WriteStartConstructor(name);
Example #33
0
 // Token: 0x060008CE RID: 2254
 // RVA: 0x0003D590 File Offset: 0x0003B790
 public override void WriteTo(JsonWriter writer, params JsonConverter[] converters)
 {
     writer.WriteStartConstructor(this._name);
     foreach (JToken current in this.Children())
     {
         current.WriteTo(writer, converters);
     }
     writer.WriteEndConstructor();
 }
Example #34
0
        private void SerializeNode(JsonWriter writer, XmlNode node, bool writePropertyName)
        {
            switch (node.NodeType)
            {
            case XmlNodeType.Document:
            case XmlNodeType.DocumentFragment:
                SerializeGroupedNodes(writer, node);
                break;

            case XmlNodeType.Element:
                if (writePropertyName)
                {
                    writer.WritePropertyName(node.Name);
                }

                if (ValueAttributes(node.Attributes).Count() == 0 && node.ChildNodes.Count == 1 &&
                    node.ChildNodes[0].NodeType == XmlNodeType.Text)
                {
                    // write elements with a single text child as a name value pair
                    writer.WriteValue(node.ChildNodes[0].Value);
                }
                else if (node.ChildNodes.Count == 0 && CollectionUtils.IsNullOrEmpty(node.Attributes))
                {
                    // empty element
                    writer.WriteNull();
                }
                else if (node.ChildNodes.OfType <XmlElement>().Where(x => x.Name.StartsWith("-")).Count() > 1)
                {
                    XmlElement constructorValueElement = node.ChildNodes.OfType <XmlElement>().Where(x => x.Name.StartsWith("-")).First();
                    string     constructorName         = constructorValueElement.Name.Substring(1);

                    writer.WriteStartConstructor(constructorName);

                    for (int i = 0; i < node.ChildNodes.Count; i++)
                    {
                        SerializeNode(writer, node.ChildNodes[i], false);
                    }

                    writer.WriteEndConstructor();
                }
                else
                {
                    writer.WriteStartObject();

                    for (int i = 0; i < node.Attributes.Count; i++)
                    {
                        SerializeNode(writer, node.Attributes[i], true);
                    }

                    SerializeGroupedNodes(writer, node);

                    writer.WriteEndObject();
                }

                break;

            case XmlNodeType.Comment:
                if (writePropertyName)
                {
                    writer.WriteComment(node.Value);
                }
                break;

            case XmlNodeType.Attribute:
            case XmlNodeType.Text:
            case XmlNodeType.CDATA:
            case XmlNodeType.ProcessingInstruction:
            case XmlNodeType.Whitespace:
            case XmlNodeType.SignificantWhitespace:
                if (node.Prefix == "xmlns" && node.Value == JsonNamespaceUri)
                {
                    break;
                }
                else if (node.NamespaceURI == JsonNamespaceUri)
                {
                    break;
                }

                if (writePropertyName)
                {
                    writer.WritePropertyName(GetPropertyName(node));
                }
                writer.WriteValue(node.Value);
                break;

            case XmlNodeType.XmlDeclaration:
                XmlDeclaration declaration = (XmlDeclaration)node;
                writer.WritePropertyName(GetPropertyName(node));
                writer.WriteStartObject();

                if (!string.IsNullOrEmpty(declaration.Version))
                {
                    writer.WritePropertyName("@version");
                    writer.WriteValue(declaration.Version);
                }
                if (!string.IsNullOrEmpty(declaration.Encoding))
                {
                    writer.WritePropertyName("@encoding");
                    writer.WriteValue(declaration.Encoding);
                }
                if (!string.IsNullOrEmpty(declaration.Standalone))
                {
                    writer.WritePropertyName("@standalone");
                    writer.WriteValue(declaration.Standalone);
                }

                writer.WriteEndObject();
                break;

            default:
                throw new JsonSerializationException("Unexpected XmlNodeType when serializing nodes: " + node.NodeType);
            }
        }
 public override void WriteStartConstructor(string name)
 {
     _innerWriter.WriteStartConstructor(name);
     AfterStart();
 }
Example #36
0
        private void WriteToken(JSchema context, JsonWriter writer, JToken token)
        {
            if (token is JObject)
            {
                JObject o = (JObject)token;

                JSchemaAnnotation schemaAnnotation = o.Annotation <JSchemaAnnotation>();

                if (schemaAnnotation != null)
                {
                    ReferenceOrWriteSchema(context, schemaAnnotation.Schema, null);
                }
                else
                {
                    writer.WriteStartObject();

                    foreach (JProperty property in o.Properties())
                    {
                        writer.WritePropertyName(property.Name);

                        JToken value = property.Value;
                        if (value != null)
                        {
                            WriteToken(context, writer, value);
                        }
                        else
                        {
                            writer.WriteNull();
                        }
                    }

                    writer.WriteEndObject();
                }
            }
            else if (token is JArray)
            {
                JArray a = (JArray)token;

                writer.WriteStartArray();

                for (int i = 0; i < a.Count; i++)
                {
                    WriteToken(context, writer, a[i]);
                }

                writer.WriteEndArray();
            }
            else if (token is JConstructor)
            {
                JConstructor c = (JConstructor)token;

                writer.WriteStartConstructor(c.Name);

                foreach (JToken t in c.Children())
                {
                    WriteToken(context, writer, t);
                }

                writer.WriteEndConstructor();
            }
            else if (token is JValue)
            {
                token.WriteTo(writer);
            }
        }