private PushStreamContent ToGeoJsonStream(List <Permit> permits, FieldChoices choice) { PushStreamContent geoJsonContent = new PushStreamContent( (stream, content, context) => { TextWriter writer = new StreamWriter(stream); JsonWriter jsonWriter = new JsonTextWriter(writer); jsonWriter.Formatting = Formatting.None; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("FeatureCollection"); jsonWriter.WritePropertyName("features"); jsonWriter.WriteStartArray(); foreach (var permit in permits) { jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("Feature"); jsonWriter.WritePropertyName("id"); jsonWriter.WriteValue(permit.PermitNum); jsonWriter.WritePropertyName("geometry"); jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("Point"); jsonWriter.WritePropertyName("coordinates"); jsonWriter.WriteStartArray(); jsonWriter.WriteValue(permit.Longitude); jsonWriter.WriteValue(permit.Latitude); jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); if ((choice & FieldChoices.Recommended) > 0) { // TODO Serialize required fields } if ((choice & FieldChoices.Optional) > 0) { // TODO Serialize optional fields } if ((choice & FieldChoices.All) > 0) { // TODO Serialize all } jsonWriter.WriteEndObject(); } jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); jsonWriter.Flush(); jsonWriter.Close(); }); return(geoJsonContent); }
private List<Permit> GetBoxPermits(List<TypeChoices> types, FieldChoices fields = FieldChoices.All) { PermitFilter filter = new PermitFilter(); Box box = new Box(); box.MinX = -81; box.MaxX = -80; box.MinY = 25; box.MaxY = 26; filter.BoundingBox = box; filter.Types = types; filter.Fields = fields; IOpenPermitAdapter adapter = new SQLOpenPermitAdapter(); List<Permit> permits = adapter.SearchPermits(filter); return permits; }
private List <Permit> GetBoxPermits(List <TypeChoices> types, FieldChoices fields = FieldChoices.All) { PermitFilter filter = new PermitFilter(); Box box = new Box(); box.MinX = -81; box.MaxX = -80; box.MinY = 25; box.MaxY = 26; filter.BoundingBox = box; filter.Types = types; filter.Fields = fields; IOpenPermitAdapter adapter = new SQLOpenPermitAdapter(); List <Permit> permits = adapter.SearchPermits(filter); return(permits); }
private PushStreamContent ToGeoJsonStream(List<Permit> permits, FieldChoices choice) { PushStreamContent geoJsonContent = new PushStreamContent( (stream, content, context) => { TextWriter writer = new StreamWriter(stream); JsonWriter jsonWriter = new JsonTextWriter(writer); jsonWriter.Formatting = Formatting.None; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("FeatureCollection"); jsonWriter.WritePropertyName("features"); jsonWriter.WriteStartArray(); foreach (var permit in permits) { jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("Feature"); jsonWriter.WritePropertyName("id"); jsonWriter.WriteValue(permit.PermitNum); jsonWriter.WritePropertyName("geometry"); jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue("Point"); jsonWriter.WritePropertyName("coordinates"); jsonWriter.WriteStartArray(); jsonWriter.WriteValue(permit.Longitude); jsonWriter.WriteValue(permit.Latitude); jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); if ((choice & FieldChoices.Recommended) > 0) { // TODO Serialize required fields } if ((choice & FieldChoices.Optional) > 0) { // TODO Serialize optional fields } if ((choice & FieldChoices.All) > 0) { // TODO Serialize all } jsonWriter.WriteEndObject(); } jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); jsonWriter.Flush(); jsonWriter.Close(); }); return geoJsonContent; }