Пример #1
0
        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;
        }