示例#1
0
        /// <summary>
        /// Reads the file and return the contained activities.
        /// </summary>
        /// <param name="fileName">Name of the file.</param>
        /// <returns></returns>
        public ICollection <TrackActivity> ReadFile(string fileName)
        {
            List <TrackActivity> activities = new List <TrackActivity>();

            GpxTree tree = ParseFile(fileName);

            if (tree == null)
            {
                return(activities);
            }

            if (tree.Tracks != null)
            {
                foreach (GpxTrack gpxTrack in tree.Tracks)
                {
                    TrackActivity track = ConvertTrack(gpxTrack);

                    track.FileName = fileName;

                    activities.Add(track);
                }
            }

            if (tree.Waypoints != null)
            {
                TrackActivity activity = new TrackActivity();
                activity.FileName  = fileName;
                activity.Laps      = new List <TrackLap>();
                activity.Waypoints = new List <TrackWaypoint>();

                foreach (GpxWaypoint gpxWaypoint in tree.Waypoints)
                {
                    activity.Waypoints.Add(ConvertWaypoint(gpxWaypoint));
                }

                activities.Add(activity);
            }

            return(activities);
        }
示例#2
0
        private GpxTree ParseFile(string file)
        {
            GpxTree tree = null;

            try
            {
                using (StreamReader reader = new StreamReader(file))
                {
                    tree = _xmlSerializer.Deserialize(reader) as GpxTree;
                }
            }

            catch (IOException)
            {
                // Error reading file
            }

            catch (InvalidOperationException)
            {
                // Serialization error
            }

            return(tree);
        }