private void LapSectorCompletedEvent(object sender, LapInfo.SectorCompletedArgs e)
        {
            SectorTiming completedSector = e.SectorTiming;

            if (!e.SectorTiming.Lap.Valid)
            {
                return;
            }

            switch (completedSector.SectorNumber)
            {
            case 1:
                if ((BestSector1 == null || BestSector1.Duration > completedSector.Duration) && completedSector.Duration != TimeSpan.Zero)
                {
                    BestSector1 = completedSector;
                }
                break;

            case 2:
                if ((BestSector2 == null || BestSector2.Duration > completedSector.Duration) && completedSector.Duration != TimeSpan.Zero)
                {
                    BestSector2 = completedSector;
                }
                break;

            case 3:
                if ((BestSector3 == null || BestSector3.Duration > completedSector.Duration) && completedSector.Duration != TimeSpan.Zero)
                {
                    BestSector3 = completedSector;
                }
                break;
            }
            OnSectorCompletedEvent(e);
        }
 protected virtual void OnSectorCompletedEvent(LapInfo.SectorCompletedArgs e)
 {
     SectorCompletedEvent?.Invoke(this, e);
 }