Esempio n. 1
0
        public static List <TcxActivity> Convert(string xmlFilePath)
        {
            List <TcxActivity> result = new List <TcxActivity>();

            string      xmlContent = File.ReadAllText(xmlFilePath);
            XmlDocument doc        = new XmlDocument();

            doc.LoadXml(xmlContent);    // full document
            if (doc.HasChildNodes)
            {
                var trainingCenterDatabase = doc.GetElementsByTagName("TrainingCenterDatabase");
                foreach (XmlNode trainingCenterDatabaseNode in trainingCenterDatabase)
                {
                    var activities = GetChildren(trainingCenterDatabaseNode, "Activities");
                    foreach (XmlNode act in activities)
                    {
                        var activitiesChildren = GetChildren(act, "Activity");
                        foreach (XmlNode activity in activitiesChildren)
                        {
                            TcxActivity tcxAct = new TcxActivity();

                            var sport    = activity.Attributes["Sport"];
                            var idChild  = GetChildren(activity, "Id");
                            var lapChild = GetChildren(activity, "Lap");

                            tcxAct.Id    = GetChildValue(activity, "Id");
                            tcxAct.Sport = sport.Value;
                            tcxAct.Laps  = new List <TcxLap>();

                            foreach (XmlNode lapNode in lapChild)
                            {
                                TcxLap lap = new TcxLap();
                                lap.StartTime         = lapNode.Attributes["StartTime"].Value;
                                lap.Track             = new TcxTrack();
                                lap.Track.TrackPoints = new List <TcxTrackpoint>();

                                var trackNodes = GetChildren(lapNode, "Track");
                                foreach (var trackNode in trackNodes)
                                {
                                    var trackPointsNodes = GetChildren(trackNode, "Trackpoint");
                                    foreach (var trackPointNode in trackPointsNodes)
                                    {
                                        TcxTrackpoint point = LoadTrackpoint(trackPointNode);

                                        lap.Track.TrackPoints.Add(point);
                                    }
                                }

                                tcxAct.Laps.Add(lap);
                            }

                            result.Add(tcxAct);
                        }
                    }
                }
            }


            return(result);
        }
Esempio n. 2
0
        private static TrackActivity ConvertActivity(TcxActivity tcxActivity)
        {
            TrackActivity track = new TrackActivity();

            track.Laps      = new List <TrackLap>();
            track.Waypoints = new List <TrackWaypoint>();

            foreach (TcxActivityLap tcxLap in tcxActivity.Laps)
            {
                TrackLap lap = new TrackLap();
                lap.Points = new List <TrackPoint>();

                if (tcxLap.Tracks != null)
                {
                    foreach (TcxTrackPointList tcxTrack in tcxLap.Tracks)
                    {
                        if (tcxTrack.Trackpoints != null)
                        {
                            foreach (TcxTrackPoint tcxPoint in tcxTrack.Trackpoints)
                            {
                                TrackPoint pt = ConvertTrackPoint(tcxPoint);

                                if (pt != null)
                                {
                                    lap.Points.Add(pt);
                                }
                            }
                        }
                    }
                }

                track.Laps.Add(lap);
            }

            return(track);
        }