private static void SimulateTrack(long trackId, Action <TrackPoint> action4TrackPoint = null, Action <WayPoint> action4WayPoint = null) { System.Console.WriteLine("Start to simulateTrack."); var track = TrackDao.GetTrack(trackId); DateTime?endDate = track.EndTime; track.EndTime = null; (new TrackDao()).Update(track); var trackPointDao = new TrackPointDao(); var wayPointDao = new WayPointDao(); var trackPoints = TrackPointDao.GetTrackPoints(track); foreach (var p in trackPoints) { p.IsActive = false; trackPointDao.Update(p); } var wayPoints = WayPointDao.GetWaypoints(track); foreach (var p in wayPoints) { p.IsActive = false; wayPointDao.Update(p); } int wayPointIdx = 0; TrackPoint lastp = null; foreach (var p in trackPoints) { //if (lastp != null && p.GpsTime == lastp.GpsTime) // continue; p.IsActive = true; trackPointDao.Update(p); if (action4TrackPoint != null) { action4TrackPoint(p); } if (wayPointIdx < wayPoints.Count && p.MessageTime >= wayPoints[wayPointIdx].MessageTime) { wayPoints[wayPointIdx].IsActive = true; wayPointDao.Update(wayPoints[wayPointIdx]); action4WayPoint(wayPoints[wayPointIdx]); wayPointIdx++; } System.Console.Write("Press any Key."); System.Console.ReadLine(); //System.Threading.Thread.Sleep(5000); System.Console.WriteLine(string.Format("write trackpoint at {0}", p.GpsTime)); lastp = p; } track.EndTime = endDate; (new TrackDao()).Update(track); System.Console.WriteLine("Finish."); }
private static void SimulateTrack(long trackId, Action<TrackPoint> action4TrackPoint = null, Action<WayPoint> action4WayPoint = null) { System.Console.WriteLine("Start to simulateTrack."); var track = TrackDao.GetTrack(trackId); DateTime? endDate = track.EndTime; track.EndTime = null; (new TrackDao()).Update(track); var trackPointDao = new TrackPointDao(); var wayPointDao = new WayPointDao(); var trackPoints = TrackPointDao.GetTrackPoints(track); foreach (var p in trackPoints) { p.IsActive = false; trackPointDao.Update(p); } var wayPoints = WayPointDao.GetWaypoints(track); foreach (var p in wayPoints) { p.IsActive = false; wayPointDao.Update(p); } int wayPointIdx = 0; TrackPoint lastp = null; foreach (var p in trackPoints) { //if (lastp != null && p.GpsTime == lastp.GpsTime) // continue; p.IsActive = true; trackPointDao.Update(p); if (action4TrackPoint != null) { action4TrackPoint(p); } if (wayPointIdx < wayPoints.Count && p.MessageTime >= wayPoints[wayPointIdx].MessageTime) { wayPoints[wayPointIdx].IsActive = true; wayPointDao.Update(wayPoints[wayPointIdx]); action4WayPoint(wayPoints[wayPointIdx]); wayPointIdx++; } System.Console.Write("Press any Key."); System.Console.ReadLine(); //System.Threading.Thread.Sleep(5000); System.Console.WriteLine(string.Format("write trackpoint at {0}", p.GpsTime)); lastp = p; } track.EndTime = endDate; (new TrackDao()).Update(track); System.Console.WriteLine("Finish."); }