Example #1
0
        protected override void WriteFile(HttpResponseBase response)
        {
            var collection = new PlacemarkCollection();

            collection.Document = (List <Placemark>)DataSource;
            var serialized = Serialize(FileDownloadName, collection);

            if (HasPreamble)
            {
                var preamble = this.ContentEncoding.GetPreamble();
                response.OutputStream.Write(preamble, 0, preamble.Length);
            }

            //XmlDocument doc = new XmlDocument();
            //doc.WriteTo(serialized);
            //var streambuffer = ContentEncoding.GetBytes(doc.OuterXml);
            var streambuffer = File.ReadAllBytes(this.TempPath);

            response.OutputStream.Write(streambuffer, 0, streambuffer.Length);

            if (File.Exists(this.TempPath))
            {
                File.Delete(this.TempPath);
            }
        }
Example #2
0
        private XmlWriter Serialize(string fileName, PlacemarkCollection placemarks)
        {
            if (File.Exists(this.TempPath))
            {
                File.Delete(this.TempPath);
            }

            var serializer = new XmlSerializer(typeof(PlacemarkCollection),
                                               KML_NAME_SPACE);

            using (var stream = new FileStream(this.TempPath, FileMode.Create))
            {
                using (var writer = new XmlTextWriter(stream, Encoding.Unicode))
                {
                    var namespaces = new XmlSerializerNamespaces();
                    namespaces.Add(string.Empty, KML_NAME_SPACE);
                    serializer.Serialize(writer, placemarks, namespaces);
                    return(writer);
                }
            }
        }