AK.F1.Timing.Utility.Tms.Operations.SessionModelPrinter.WriteBestLapAndSectorTimes C# (CSharp) Method

WriteBestLapAndSectorTimes() private static method

private static WriteBestLapAndSectorTimes ( SessionModel session ) : void
session AK.F1.Timing.Model.Session.SessionModel
return void
        private static void WriteBestLapAndSectorTimes(SessionModel session)
        {
            WriteLine();
            WriteLine("+--------------------------------------------------------------------+");
            WriteLine("|                       BEST LAP AND SECTOR TIMES                    |");
            WriteLine("+--------------------+-----------+-------+-------+-------+-----------+");
            WriteLine("| DRIVER             |      BEST |    S1 |    S2 |    S3 |      POSS |");
            WriteLine("+--------------------+-----------+-------+-------+-------+-----------+");
            foreach(var driver in session.Drivers.OrderBy(x => x.LapTimes.Laps.Minimum))
            {
                var times = driver.LapTimes;
                Write("|{0,-20}|", driver.Name);
                Write("{0,11}|", Format.LapTime(times.Laps.Minimum));
                Write("{0,7}|", Format.SectorTime(times.S1.Minimum));
                Write("{0,7}|", Format.SectorTime(times.S2.Minimum));
                Write("{0,7}|", Format.SectorTime(times.S3.Minimum));
                TimeSpan? possible = null;
                if(times.S1.Minimum != null && times.S2.Minimum != null && times.S3.Minimum != null)
                {
                    possible = times.S1.Minimum.Time + times.S2.Minimum.Time + times.S3.Minimum.Time;
                }
                Write("{0,11}|", Format.LapTime(possible));
                WriteLine();
            }
            WriteLine("+--------------------------------------------------------------------+");
        }