private static void WriteSessionStatistics(SessionModel session)
{
WriteLine();
WriteLine("+---------------------------------------+");
WriteLine("| SESSION STATISTICS |");
WriteLine("+------------------+--------------------+");
WriteLine("|Session Type |{0,20}|", session.SessionType);
WriteLine("|Session Status |{0,20}|", session.SessionStatus);
WriteLine("|Session Time |{0,20}|", session.ElapsedSessionTime);
WriteLine("|Rem Session Time |{0,20}|", session.RemainingSessionTime);
WriteLine("|Session Laps |{0,20}|", session.RaceLapNumber);
WriteLine("|Drivers |{0,20}|", session.Drivers.Count);
WriteLine("+------------------+--------------------+");
WriteLine("+--------------------------------------------------------------------+");
WriteLine("| BEST LAP AND SECTOR TIMES |");
WriteLine("+--------------------+-----------+-------+-------+-------+-----------+");
WriteLine("| DRIVER | BEST | S1 | S2 | S3 | POSS |");
WriteLine("+--------------------+-----------+-------+-------+-------+-----------+");
foreach(DriverModel driver in session.Drivers) {
TimeSpan sector;
TimeSpan possible = TimeSpan.Zero;
Write("|{0,-20}|", driver.Name);
Write("{0,11}|", Format.LapTime(driver.LapTimes.Minimum));
foreach(var times in driver.SectorTimes) {
// TODO !!!!!
possible += sector = times.Minimum != null ? times.Minimum.Value : TimeSpan.Zero;
Write("{0,7}|", Format.SectorTime(sector));
}
WriteLine("{0,11}|", "~" + Format.LapTime(possible));
}
WriteLine("+--------------------------------------------------------------------+");
WriteLine();
WriteLine("+---------------------------------------------+");
WriteLine("| TOTAL SECTOR / LAP TIME / PIT COUNTS |");
WriteLine("+--------------------+----+----+----+----+----+");
WriteLine("| DRIVER | S1 | S2 | S3 | L | P |");
WriteLine("+--------------------+----+----+----+----+----+");
foreach(DriverModel driver in session.Drivers) {
Write("|{0,-20}|", driver.Name);
foreach(var times in driver.SectorTimes) {
Write("{0,4}|", times.Values.Count);
}
Write("{0,4}|", driver.LapTimes.Values.Count);
WriteLine("{0,4}|", driver.PitCount);
}
WriteLine("+--------------------+----+----+----+----+----+");
}