Esempio n. 1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            writer.WritePropertyName("coordinates");

            List<List<Coordinate[]>> coordinatesss = value as List<List<Coordinate[]>>;
            if (coordinatesss != null)
            {
                WriteJsonCoordinatesEnumerable2(writer, coordinatesss, serializer);
                return;
            }

            List<Coordinate[]> coordinatess = value as List<Coordinate[]>;
            if (coordinatess != null)
            {
                WriteJsonCoordinatesEnumerable(writer, coordinatess, serializer);
                return;
            }

            IEnumerable<Coordinate> coordinates = value as IEnumerable<Coordinate>;
            if (coordinates != null)
            {
                WriteJsonCoordinates(writer, coordinates, serializer);
                return;
            }

            Coordinate coordinate = value as Coordinate;
            if (coordinate != null)
            {
                WriteJsonCoordinate(writer, coordinate, serializer);
                return;
            }
        }
		public bool TryWriteFeature(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (!_shapeConverter.CanConvert(ObjectType.Feature))
				return false;

			ObjectType geomType = _shapeConverter.GetObjectType(value);
			if (geomType != ObjectType.Feature)
				return false;

			writer.WriteStartObject();
			writer.WritePropertyName("type");
			writer.WriteValue(Enum.GetName(typeof(ObjectType), ObjectType.Feature));

			object id;
			Dictionary<string, object> props;
			var geometry = _shapeConverter.FromFeature(value, out id, out props);

			if (id != null)
			{
				writer.WritePropertyName("id");
				serializer.Serialize(writer, id);
			}

			if (props != null && props.Count > 0)
			{
				writer.WritePropertyName("properties");
				serializer.Serialize(writer, props);
			}

			writer.WritePropertyName("geometry");
			serializer.Serialize(writer, geometry);

			writer.WriteEndObject();
			return true;
		}
Esempio n. 3
0
		/// <summary>
		/// Writes the JSON representation of the object.
		/// </summary>
		/// <param name="writer">The <see cref="T:Raven.Imports.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)
		{
			if(value == null)
				writer.WriteNull();
			else
				writer.WriteValue(value.ToString());
		}
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if(value is DateTime)
			{
				var dateTime = ((DateTime)value);
				if (dateTime.Kind == DateTimeKind.Unspecified)
					dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Local);
				var postFix = dateTime.Kind == DateTimeKind.Utc ? "Z" : "";
				writer.WriteValue(dateTime.ToString(Default.DateTimeFormatsToWrite + postFix, CultureInfo.InvariantCulture));
			}
			else if (value is DateTimeOffset)
			{
				var dateTimeOffset = ((DateTimeOffset) value);
				if(dateTimeOffset.Offset==TimeSpan.Zero)
				{
					writer.WriteValue(dateTimeOffset.UtcDateTime.ToString(Default.DateTimeFormatsToWrite, CultureInfo.InvariantCulture) + "Z");
				}
				else
				{
					writer.WriteValue(dateTimeOffset.ToString(Default.DateTimeOffsetFormatsToWrite, CultureInfo.InvariantCulture));
				}
			}
			else
				throw new ArgumentException(string.Format("Not idea how to process argument: '{0}'", value));
		}
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var collection = (NameValueCollection)value;

			writer.WriteStartObject();

			foreach (var key in collection.AllKeys)
			{
				writer.WritePropertyName(key);

				var values = collection.GetValues(key);
				if (values == null)
				{
					writer.WriteNull();
					continue;
				}
				if (values.Length == 1)
				{
					writer.WriteValue(values[0]);
				}
				else
				{
					writer.WriteStartArray();

					foreach (var item in values)
					{
						writer.WriteValue(item);
					}

					writer.WriteEndArray();
				}

			}
			writer.WriteEndObject();
		}
Esempio n. 6
0
		/// <summary>
		/// Writes the JSON representation of the object.
		/// </summary>
		/// <param name="writer">The <see cref="T:Raven.Imports.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)
		{
			if (value == null)
			{
					writer.WriteNull();
				return;
			}
			if (value.GetType() == typeof (object))
			{
				writer.WriteStartObject();
				writer.WriteEndObject();
				return;
			}

			var dynamicValue = ((IDynamicMetaObjectProvider) value).GetMetaObject(Expression.Constant(value));

			writer.WriteStartObject();
			foreach (var dynamicMemberName in dynamicValue.GetDynamicMemberNames())
			{
				writer.WritePropertyName(dynamicMemberName);
				var memberValue = DynamicUtil.GetValueDynamically(value, dynamicMemberName);
				if(memberValue == null || memberValue is ValueType || memberValue is string)
					writer.WriteValue(memberValue);
				else
					serializer.Serialize(writer, memberValue);
			}
			writer.WriteEndObject();

		}
 private static void WriteJsonCoordinatesEnumerable2(JsonWriter writer, List<List<Coordinate[]>> coordinates, JsonSerializer serializer)
 {
     writer.WriteStartArray();
     foreach (List<Coordinate[]> coordinate in coordinates)
         WriteJsonCoordinatesEnumerable(writer, coordinate, serializer);
     writer.WriteEndArray();
 }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (value == null)
				writer.WriteValue((object)null);
			else
				writer.WriteValue(_wktWriter.Write(value));
		}
 private static void WriteJsonCoordinates(JsonWriter writer, IEnumerable<Coordinate> coordinates, JsonSerializer serializer)
 {
     writer.WriteStartArray();
     foreach (Coordinate coordinate in coordinates)
         WriteJsonCoordinate(writer, coordinate, serializer);
     writer.WriteEndArray();
 }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (TryWriteGeo(writer, value, serializer))
				return;

			base.WriteJson(writer, value, serializer);
		}
 /// <summary>
 /// Writes the JSON representation of the object.
 /// </summary>
 /// <remarks>This will enumerate the Linq-To-Entities query before serializing it to json array</remarks>
 /// <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)
 {
     var enumerable = (IEnumerable) value;
     writer.WriteStartArray();
     foreach(var item in enumerable)
         writer.WriteValue(item);
     writer.WriteEndArray();
 }
Esempio n. 12
0
 private void WriteArray(JsonWriter writer, object value) {
     writer.WriteStartArray();
     var array = value as IEnumerable<object>;
     foreach (var o in array) {
         this.WriteValue(writer, o);
     }
     writer.WriteEndArray();
 }
Esempio n. 13
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     var etag = value as Etag;
     if (etag == null)
         writer.WriteNull();
     else
         writer.WriteValue(etag.ToString());
 }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var slice = (Slice) value;
			var buffer = new byte[slice.Count];
			Buffer.BlockCopy(slice.Array, slice.Offset, buffer, 0, slice.Count);
			writer.WriteValue(buffer);
			writer.WriteComment(slice.DebugVal);
		}
Esempio n. 15
0
 private void WriteObject(JsonWriter writer, object value) {
     writer.WriteStartObject();
     var obj = value as IDictionary<string, object>;
     foreach (var kvp in obj) {
         writer.WritePropertyName(kvp.Key);
         this.WriteValue(writer, kvp.Value);
     }
     writer.WriteEndObject();
 }
Esempio n. 16
0
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (value is RavenJToken)
				((RavenJToken)value).WriteTo(writer);
			else if(value is DynamicNullObject)
				writer.WriteNull();
			else
				((IDynamicJsonObject)value).WriteTo(writer);
		}
 /// <summary>
 /// Writes the JSON representation of the object.
 /// </summary>
 /// <param name="writer">The <see cref="T:Raven.Imports.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)
 {
     var dts = (DateTimeOffset) value;
     new RavenJObject
     {
         {"DateTime", dts.DateTime},
         {"Offset", dts.Offset.TotalMilliseconds}
     }.WriteTo(writer);
 }
Esempio n. 18
0
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if(value == null)
			{
				writer.WriteNull();
				return;
			}
			var f = (float)value;
			writer.WriteValue(EnsureDecimalPlace(f, f.ToString("R", CultureInfo.InvariantCulture)));
		}
Esempio n. 19
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     System.Net.IPEndPoint ep = (System.Net.IPEndPoint)value;
     writer.WriteStartObject();
     writer.WritePropertyName("Address");
     serializer.Serialize(writer, ep.Address.ToString());
     writer.WritePropertyName("Port");
     writer.WriteValue(ep.Port);
     writer.WriteEndObject();
 }
 private void WriteModelMetaData(JsonWriter writer, Model.MetaData obj) {
     var t = obj.GetType();
     var properties = t.GetProperties();
     writer.WriteStartObject();
     foreach (var property in properties) {
         writer.WritePropertyName(property.Name);
         writer.WriteValue(property.GetValue(obj));
     }
     writer.WriteEndObject();
 }
Esempio n. 21
0
        private static void WriteJsonCoordinate(JsonWriter writer, Coordinate coordinate, JsonSerializer serializer)
        {
            writer.WriteStartArray();

            writer.WriteValue(coordinate.X);
            writer.WriteValue(coordinate.Y);
            if (!Double.IsNaN(coordinate.Z))
                writer.WriteValue(coordinate.Z);
            
            writer.WriteEndArray();
        }
 public override void WriteTo(JsonWriter writer)
 {
     var dynamicJsonObject = parentDoc as IDynamicJsonObject;
     if (dynamicJsonObject != null)
     {
         dynamicJsonObject.WriteTo(writer);
     }
     else
     {
         base.WriteTo(writer);
     }
 }
Esempio n. 23
0
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (value is RavenJToken)
				((RavenJToken)value).WriteTo(writer);
#if !NET35
			else if(value is DynamicNullObject)
				writer.WriteNull();
			else
				((IDynamicJsonObject)value).Inner.WriteTo(writer);
#else
			throw new NotImplementedException();
#endif
		}
Esempio n. 24
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            Envelope envelope = value as Envelope;
            if (envelope == null) return;

            writer.WritePropertyName("bbox");
            writer.WriteStartArray();
            writer.WriteValue(envelope.MinX);
            writer.WriteValue(envelope.MinY);
            writer.WriteValue(envelope.MaxX);
            writer.WriteValue(envelope.MaxY);
            writer.WriteEndArray();
        }
Esempio n. 25
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            IGeometry geom = value as IGeometry;
            if (geom == null)
                return;

            writer.WriteStartObject();

            GeoJsonObjectType geomType = this.ToGeoJsonObject(geom);
            writer.WritePropertyName("type");
            writer.WriteValue(Enum.GetName(typeof(GeoJsonObjectType), geomType));
            
            switch (geomType)
            {
                case GeoJsonObjectType.Point:
                    serializer.Serialize(writer, geom.Coordinate);
                    break;
                case GeoJsonObjectType.LineString:
                case GeoJsonObjectType.MultiPoint:
                    serializer.Serialize(writer, geom.Coordinates);
                    break;
                case GeoJsonObjectType.Polygon:
                    IPolygon poly = geom as IPolygon;
                    Debug.Assert(poly != null);
                    serializer.Serialize(writer, PolygonCoordiantes(poly));
                    break;

                case GeoJsonObjectType.MultiPolygon:
                    IMultiPolygon mpoly = geom as IMultiPolygon;
                    Debug.Assert(mpoly != null);
                    List<List<Coordinate[]>> list = new List<List<Coordinate[]>>();
                    foreach (IPolygon mempoly in mpoly.Geometries)
                        list.Add(PolygonCoordiantes(mempoly));
                    serializer.Serialize(writer, list);
                    break;

                case GeoJsonObjectType.GeometryCollection:
                    IGeometryCollection gc = geom as IGeometryCollection;
                    Debug.Assert(gc != null);
                    serializer.Serialize(writer, gc.Geometries);
                    break;
                default:
                    List<Coordinate[]> coordinates = new List<Coordinate[]>();
                    foreach (IGeometry geometry in ((IGeometryCollection)geom).Geometries)
                        coordinates.Add(geometry.Coordinates);
                    serializer.Serialize(writer, coordinates);
                    break;
            }

            writer.WriteEndObject();
        }
        private void WriteObject(JsonWriter writer, object value) {
            writer.WriteStartObject();
            var obj = value as IDictionary<string, object>;
            foreach (var kvp in obj) {
                writer.WritePropertyName(kvp.Key);
                if (kvp.Value is Model.MetaData) {
                    this.WriteModelMetaData(writer, kvp.Value as Model.MetaData);
                    continue;
                }

                this.WriteValue(writer, kvp.Value);
            }
            writer.WriteEndObject();
        }
Esempio n. 27
0
 private void WriteValue(JsonWriter writer, object value) {
     var tokenType = value == null ? JTokenType.Null : JToken.FromObject(value).Type;
     switch (tokenType) {
         case JTokenType.Object:
             this.WriteObject(writer, value);
             break;
         case JTokenType.Array:
             this.WriteArray(writer, value);
             break;
         default:
             writer.WriteValue(value);
             break;
     }
 }
Esempio n. 28
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var referenceType = value is IDynamicProxy
                ? (value as IDynamicProxy).GetOriginalTypeBeforeDynamicProxy()
                : value.GetType();

            var reference = new DenormalizedReference()
                                {
                                    Id = string.Format(CultureInfo.InvariantCulture, "{0}",
                                                       _documentConvention.GetIdentityProperty(referenceType).GetValue(value, null)),
                                    ReferenceInstanceType = referenceType
                                };
            serializer.Serialize(writer, reference);
        }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if(value is DateTime)
			{
				var dateTime = ((DateTime)value);
				if (dateTime.Kind == DateTimeKind.Unspecified)
					dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Local);
                writer.WriteValue(dateTime.GetDefaultRavenFormat(dateTime.Kind == DateTimeKind.Utc));
			}
			else if (value is DateTimeOffset)
			{
				var dateTimeOffset = ((DateTimeOffset) value);
				writer.WriteValue(dateTimeOffset.ToString(Default.DateTimeOffsetFormatsToWrite, CultureInfo.InvariantCulture));
			}
			else
				throw new ArgumentException(string.Format("Not idea how to process argument: '{0}'", value));
		}
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                writer.WriteStartArray();
                foreach (object item in (IEnumerable) value)
                {
                    writer.WriteStartObject();

                    writer.WritePropertyName("CrlType");
                    writer.WriteValue(item.GetType().AssemblyQualifiedName);

                    writer.WritePropertyName("Value");

                    serializer.Serialize(writer, item);

                    writer.WriteEndObject();
                }
                writer.WriteEndArray();
            }