private int?TryGetLapNumberAtCrossedAtTime(Time time, eCrossedAtLapBehavior behavior) { int?ret = null; try { ret = GetLapNumberAtCrossedAtTime(time, behavior); } catch { ret = null; } return(ret); }
private int GetLapNumberAtCrossedAtTime(Time time, eCrossedAtLapBehavior behavior) { Time currentFirstTime; for (int i = 1; i < this.Positions.LapCount; i++) { currentFirstTime = this.Positions[i][0].CrossedAtTime; if (time < currentFirstTime) { if (behavior == eCrossedAtLapBehavior.FirstLapAfter) { return(i); } else { return(i - 1); } } } throw new ApplicationException("No lap found for time " + time); }