/// <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); }
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); }