private void CalculateDriverStatsPits() { var x = this.DriverStats; x.FastestPit = new DriverStatRecord <double>(double.MaxValue); x.SlowestPit = new DriverStatRecord <double>(double.MinValue); foreach (var fItem in r.Standings) { Standings.RaceStanding rs = fItem as Standings.RaceStanding; if (rs.PitInfo.BestPitTime.HasValue) { double pitTime = rs.PitInfo.BestPitTime.Value; if (x.FastestPit.CompareTo(pitTime) > 0) { x.FastestPit = new DriverStatRecord <double>(fItem.Driver, pitTime); } } if (rs.PitInfo.WorstPitTime.HasValue) { double pitTime = rs.PitInfo.WorstPitTime.Value; if (x.SlowestPit.CompareTo(pitTime) < 0) { x.SlowestPit = new DriverStatRecord <double>(fItem.Driver, pitTime); } } } // foreach (var fItem in r.Standings) }
private void CalculateDriverStatsPerRace() { var x = this.DriverStats; x.BiggestGainPerRace = new DriverStatRecord <int>(int.MinValue); x.BiggestLoosePerRace = new DriverStatRecord <int>(int.MaxValue); foreach (var fItem in r.Standings) { Standings.RaceStanding rs = fItem as Standings.RaceStanding; if (rs.Position.HasValue && rs.StartingPosition.HasValue) { int diff = rs.Position.Value - rs.StartingPosition.Value; if (x.BiggestGainPerRace.CompareTo(diff) < 0) { x.BiggestGainPerRace = new DriverStatRecord <int>(fItem.Driver, diff); } if (x.BiggestLoosePerRace.CompareTo(diff) > 0) { x.BiggestLoosePerRace = new DriverStatRecord <int>(fItem.Driver, diff); } } } }