Esempio n. 1
0
        public void Export()
        {
            var writerSettings = new XmlWriterSettings {
                Encoding = Encoding.UTF8, Indent = true, IndentChars = "  "
            };
            var writer       = XmlWriter.Create(OutputStream, writerSettings);
            var formatter    = new Formatter();
            var cacheManager = new RoutePropertyCacheManager();

            if (writer != null)
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("Route");
                int segmentCount = 0;
                foreach (var segment in Session.Route.Segments)
                {
                    writer.WriteStartElement("Segment");
                    var waypoints = Session.Route.GetEquallySpacedWaypoints(segment.FirstWaypoint.Time, segment.LastWaypoint.Time, Settings.SamplingInterval, Settings.ZeroTime);
                    var lastPl    = new ParameterizedLocation(segmentCount, 0);

                    foreach (var waypoint in waypoints)
                    {
                        writer.WriteStartElement("Sample");
                        var pl        = Session.Route.GetParameterizedLocationFromTime(waypoint.Time, lastPl, ParameterizedLocation.Direction.Forward);
                        var locations = new RouteLocations(pl);
                        foreach (var lpType in Settings.RoutePropertyTypes)
                        {
                            if (lpType.Selected)
                            {
                                RetrieveExternalPropertyDelegate dlg = new ExternalRoutePropertyRetriever(Session.Settings).RetrieveExternalProperty;
                                var lp = Activator.CreateInstance(lpType.RoutePropertyType, Session, locations, dlg) as RouteProperty;

                                if (lp != null)
                                {
                                    lp.CacheManager = cacheManager;
                                    if (lp.ContainsValue)
                                    {
                                        var attributeName  = GetCamelCaseString(lpType.RoutePropertyType.Name);
                                        var attributeValue = lp.ToString(formatter);
                                        writer.WriteAttributeString(attributeName, attributeValue);
                                    }
                                }
                            }
                        }

                        writer.WriteEndElement();
                        lastPl = pl;
                    }
                    writer.WriteEndElement();
                    segmentCount++;
                }
                writer.WriteEndElement();
                writer.Close();
            }
        }
        public void Export()
        {
            var writerSettings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true, IndentChars = "  " };
              var writer = XmlWriter.Create(OutputStream, writerSettings);
              var formatter = new Formatter();
              var cacheManager = new RoutePropertyCacheManager();

              if (writer != null)
              {
            writer.WriteStartDocument();
            writer.WriteStartElement("Route");
            int segmentCount = 0;
            foreach (var segment in Session.Route.Segments)
            {
              writer.WriteStartElement("Segment");
              var waypoints = Session.Route.GetEquallySpacedWaypoints(segment.FirstWaypoint.Time, segment.LastWaypoint.Time, Settings.SamplingInterval, Settings.ZeroTime);
              var lastPl = new ParameterizedLocation(segmentCount, 0);

              foreach (var waypoint in waypoints)
              {
            writer.WriteStartElement("Sample");
            var pl = Session.Route.GetParameterizedLocationFromTime(waypoint.Time, lastPl, ParameterizedLocation.Direction.Forward);
            var locations = new RouteLocations(pl);
            foreach (var lpType in Settings.RoutePropertyTypes)
            {
              if (lpType.Selected)
              {
                RetrieveExternalPropertyDelegate dlg = new ExternalRoutePropertyRetriever(Session.Settings).RetrieveExternalProperty;
                var lp = Activator.CreateInstance(lpType.RoutePropertyType, Session, locations, dlg) as RouteProperty;

                if (lp != null)
                {
                  lp.CacheManager = cacheManager;
                  if (lp.ContainsValue)
                  {
                    var attributeName = GetCamelCaseString(lpType.RoutePropertyType.Name);
                    var attributeValue = lp.ToString(formatter);
                    writer.WriteAttributeString(attributeName, attributeValue);
                  }
                }
              }
            }

            writer.WriteEndElement();
            lastPl = pl;
              }
              writer.WriteEndElement();
              segmentCount++;
            }
            writer.WriteEndElement();
            writer.Close();
              }
        }