public void Execute()
 {
     if (StartTime.HasValue)
       {
     startTimeCutAction = new CutRouteAction(Session, StartTime.Value + offset,
                                         CutType.Before);
     startTimeCutAction.Execute();
       }
       if (EndTime.HasValue)
       {
     endTimeCutAction = new CutRouteAction(Session, EndTime.Value + offset,
                                         CutType.After);
     endTimeCutAction.Execute();
       }
       addLapActions = new List<AddLapAction>();
       foreach(Lap lap in Laps)
       {
     lap.Time += offset;
     if (lap.Time >= Session.Route.FirstWaypoint.Time &&
     lap.Time <= Session.Route.LastWaypoint.Time)
     {
       var a = new AddLapAction(lap, Session);
       addLapActions.Add(a);
       a.Execute();
     }
       }
 }
Beispiel #2
0
        public void Cut(ParameterizedLocation parameterizedLocation, DateTime? time)
        {
            if (!time.HasValue) time = CurrentSession.Route.GetTimeFromParameterizedLocation(parameterizedLocation);

              using (var form = new RouteCutForm { InitialTime = time.Value })
              {
            double distance =
              CurrentSession.Route.GetAttributeFromParameterizedLocation(WaypointAttribute.Distance, parameterizedLocation).
            Value;
            double totalDistance = CurrentSession.Route.LastWaypoint.Attributes[WaypointAttribute.Distance].Value;
            form.CutType = (distance < totalDistance/2 ? CutType.Before : CutType.After);

            if (form.ShowDialog() == DialogResult.OK)
            {
              mouseHoverHandle = null;
              var action = new CutRouteAction(CurrentSession, form.Time,
                                          form.CutType);
              ExecuteAction(action);
              DrawMap(MapDrawingFlags.Route | MapDrawingFlags.Markers);
            }
              }
        }