Files
TrackTrendsDoc/site/Code/DataWrapper.html
T
2023-06-09 09:33:05 +02:00

688 lines
148 KiB
HTML

<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<meta content="Rohmer Maxime" name="author"/>
<link href="../assets/images/favicon.png" rel="icon"/>
<meta content="mkdocs-1.4.3, mkdocs-material-8.5.0" name="generator"/>
<title>DataWrapper.cs - Documentation Track Trends</title>
<link href="../assets/stylesheets/main.2e8b5541.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.cbb835fc.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<link href="../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>html.glightbox-open { overflow: initial; height: 100%; }</style><script src="../assets/javascripts/glightbox.min.js"></script></head>
<body data-md-color-accent="" data-md-color-primary="" data-md-color-scheme="default" dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a class="md-skip" href="#datawrappercs">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav aria-label="Header" class="md-header__inner md-grid">
<a aria-label="Documentation Track Trends" class="md-header__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Documentation Track Trends
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
DataWrapper.cs
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
<input aria-hidden="true" class="md-option" data-md-color-accent="" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
</form>
<label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label>
<nav aria-label="Search" class="md-search__options">
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="">
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a aria-label="Documentation Track Trends" class="md-nav__button md-logo" data-md-component="logo" href="../index.html" title="Documentation Track Trends">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"></path></svg>
</a>
Documentation Track Trends
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../index.html">
Rapport Track Trends V1.0
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../CahierDesCharges.html">
Cahier des charges
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../ManuelUtilisateur.html">
Manuel utilisateur
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../jdb.html">
Journal de bord
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" id="__nav_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5">
Code
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-label="Code" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Code
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="ConfigurationTool.html">
ConfigurationTool.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverData.html">
DriverData.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverGapToLeaderWindow.html">
DriverGapToLeaderWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverNameWindow.html">
DriverNameWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverSectorWindow.html">
DriverSectorWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="F1TVEmulator.html">
F1TVEmulator.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Form1.html">
Form1.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="SqliteStorage.html">
SqliteStorage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Zone.html">
Zone.cs
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="DataWrapper.html">
DataWrapper.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverDrsWindow.html">
DriverDrsWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverLapTimeWindow.html">
DriverLapTimeWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverPositionWindow.html">
DriverPositionWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="DriverTyresWindow.html">
DriverTyresWindow.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="OcrImage.html">
OcrImage.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Reader.html">
Reader.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Settings.html">
Settings.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Window.html">
Window.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="recoverCookiesCSV.html">
recoverCookiesCSV.py
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="datawrappercs">DataWrapper.cs</h1>
<div class="language-cs highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="c1">/// Author : Maxime Rohmer</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1">/// Date : 09/06/2023</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1">/// File : DataWrapper.cs</span>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="c1">/// Brief : Class that is used to interface between the main Form (vue) and the Storage (wich is a class that wraps the sqlite database, so the model) its almost MVC :D</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1">/// Version : Beta 1.0</span>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Collections.Generic</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Linq</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Text</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Threading.Tasks</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Windows.Forms</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="k">using</span><span class="w"> </span><span class="nn">System.Drawing</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="k">namespace</span><span class="w"> </span><span class="nn">TrackTrends</span><span class="w"></span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="k">internal</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">DataWrapper</span><span class="w"></span>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">Reader</span><span class="w"> </span><span class="n">Reader</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="n">SqliteStorage</span><span class="w"> </span><span class="n">Storage</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="n">List</span><span class="p">&lt;</span><span class="n">DriverData</span><span class="p">&gt;&gt;</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="n">List</span><span class="p">&lt;</span><span class="n">DriverData</span><span class="p">&gt;&gt;();</span><span class="w"></span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="c1">//Note : It could be usefull to get the mainForm at the start of the programm and not have to take it in half of the methods.</span>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="w"> </span><span class="c1">/// Constructs a new DataWrapper. It needs the config file so it can create a Reader, It also needs a first screenshot for the same reason</span>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="c1">/// &lt;param name="configFile"&gt;The JSON config file that is created by the configuration tool&lt;/param&gt;</span>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="c1">/// &lt;param name="screenshot"&gt;A screenshot of the &lt;/param&gt;</span>
</span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="nf">DataWrapper</span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">configFile</span><span class="p">,</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="n">screenshot</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="n">Reader</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Reader</span><span class="p">(</span><span class="n">configFile</span><span class="p">,</span><span class="w"> </span><span class="n">screenshot</span><span class="p">,</span><span class="w"> </span><span class="k">true</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="w"> </span><span class="c1">//The Storage is here and on the Reader. It seems bad but it is ok as we dont use it at all to insert data and are only using it here to read some. The reader takes care of the inserts (Note: We could technically do both here but I did not find it usefull to transfer everything here)</span>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="w"> </span><span class="n">Storage</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">Storage</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="c1">/// Refreshes the controller so it has the latest driver datas (Be sure to call it everytime you need to use any other method and expects the data to be up to date)</span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;Error code, 0 is success, 1 is not (Note: Maybe it could be interesting in the future to add some more error handling here)&lt;/returns&gt;</span>
</span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">Refresh</span><span class="p">()</span><span class="w"></span>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Reader</span><span class="p">.</span><span class="n">Decode</span><span class="p">(</span><span class="n">Reader</span><span class="p">.</span><span class="n">MainZones</span><span class="p">,</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">Drivers</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="c1">/// Changes the image to the newest screenshot in all of the zones and windows</span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="w"> </span><span class="c1">/// &lt;param name="image"&gt;The new screenshot to put everywhere (Do not mix resolutions)&lt;/param&gt;</span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">ChangeImage</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">image</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ChangeImage</span><span class="p">(</span><span class="n">image</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="w"> </span><span class="c1">/// Gets all the data from one driver and also displays into the given panel the last five laps (or less if its the sart of the race) Note: Its responsive :D</span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="w"> </span><span class="c1">/// &lt;param name="driverName"&gt;The name of the driver (should not be case sensitive but it MUST already exist in the first list that has been inserted into the DB)&lt;/param&gt;</span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="w"> </span><span class="c1">/// &lt;param name="lastFiveLapsPanel"&gt;The pannel where you want the five last laps to be displayed&lt;/param&gt;</span>
</span><span id="__span-0-58"><a href="#__codelineno-0-58" id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="w"> </span><span class="c1">/// &lt;param name="form1"&gt;The Main form.&lt;/param&gt;</span>
</span><span id="__span-0-59"><a href="#__codelineno-0-59" id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="w"> </span><span class="c1">/// &lt;returns&gt;&lt;/returns&gt;</span>
</span><span id="__span-0-60"><a href="#__codelineno-0-60" id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="nf">GetFullDriverData</span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">driverName</span><span class="p">,</span><span class="w"> </span><span class="n">Panel</span><span class="w"> </span><span class="n">lastFiveLapsPanel</span><span class="p">,</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">form1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-61"><a href="#__codelineno-0-61" id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-62"><a href="#__codelineno-0-62" id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="w"> </span><span class="c1">//Note : I know that its a bad idea to ask the Form in this method and some others because it means that it wont work with any main form. And to that Ill say that... your right !</span>
</span><span id="__span-0-63"><a href="#__codelineno-0-63" id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">DriverData</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-64"><a href="#__codelineno-0-64" id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-65"><a href="#__codelineno-0-65" id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-66"><a href="#__codelineno-0-66" id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="w"> </span><span class="c1">//Searches the most recent live data from the given driverName</span>
</span><span id="__span-0-67"><a href="#__codelineno-0-67" id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="n">DriverData</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">])</span><span class="w"></span>
</span><span id="__span-0-68"><a href="#__codelineno-0-68" id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-69"><a href="#__codelineno-0-69" id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">data</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">driverName</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-70"><a href="#__codelineno-0-70" id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">data</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-71"><a href="#__codelineno-0-71" id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-72"><a href="#__codelineno-0-72" id="__codelineno-0-72" name="__codelineno-0-72"></a>
</span><span id="__span-0-73"><a href="#__codelineno-0-73" id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">result</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="s">""</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-74"><a href="#__codelineno-0-74" id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-75"><a href="#__codelineno-0-75" id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="w"> </span><span class="c1">//Recovers and displays the last five laps from the driver</span>
</span><span id="__span-0-76"><a href="#__codelineno-0-76" id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="w"> </span><span class="n">lastFiveLapsPanel</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-77"><a href="#__codelineno-0-77" id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">labelDimensions</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">lastFiveLapsPanel</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">lastFiveLapsPanel</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">5</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-78"><a href="#__codelineno-0-78" id="__codelineno-0-78" name="__codelineno-0-78"></a>
</span><span id="__span-0-79"><a href="#__codelineno-0-79" id="__codelineno-0-79" name="__codelineno-0-79"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="kt">int</span><span class="w"> </span><span class="n">LapTime</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">Lap</span><span class="p">)&gt;</span><span class="w"> </span><span class="n">lapsInfos</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Storage</span><span class="p">.</span><span class="n">GetDriverLaptimes</span><span class="p">(</span><span class="n">driverName</span><span class="p">,</span><span class="w"> </span><span class="m">5</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-80"><a href="#__codelineno-0-80" id="__codelineno-0-80" name="__codelineno-0-80"></a>
</span><span id="__span-0-81"><a href="#__codelineno-0-81" id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-82"><a href="#__codelineno-0-82" id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="w"> </span><span class="n">LapTime</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">Lap</span><span class="p">)</span><span class="w"> </span><span class="n">lapData</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">lapsInfos</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-83"><a href="#__codelineno-0-83" id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-84"><a href="#__codelineno-0-84" id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="w"> </span><span class="c1">//Hardcodes the new button.</span>
</span><span id="__span-0-85"><a href="#__codelineno-0-85" id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="w"> </span><span class="c1">//Note : It could be smart to have like a default button for all the methods to use without needing to rewrite everything.</span>
</span><span id="__span-0-86"><a href="#__codelineno-0-86" id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">newButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-87"><a href="#__codelineno-0-87" id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="w"> </span><span class="n">lastFiveLapsPanel</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">newButton</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-88"><a href="#__codelineno-0-88" id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driverName</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">"_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">lapData</span><span class="p">.</span><span class="n">Lap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-89"><a href="#__codelineno-0-89" id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">lapData</span><span class="p">.</span><span class="n">LapTime</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-90"><a href="#__codelineno-0-90" id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">labelDimensions</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-91"><a href="#__codelineno-0-91" id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-92"><a href="#__codelineno-0-92" id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnLapTime_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-93"><a href="#__codelineno-0-93" id="__codelineno-0-93" name="__codelineno-0-93"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Height</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-94"><a href="#__codelineno-0-94" id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="w"> </span><span class="n">id</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-95"><a href="#__codelineno-0-95" id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-96"><a href="#__codelineno-0-96" id="__codelineno-0-96" name="__codelineno-0-96"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-97"><a href="#__codelineno-0-97" id="__codelineno-0-97" name="__codelineno-0-97"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-98"><a href="#__codelineno-0-98" id="__codelineno-0-98" name="__codelineno-0-98"></a>
</span><span id="__span-0-99"><a href="#__codelineno-0-99" id="__codelineno-0-99" name="__codelineno-0-99"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-100"><a href="#__codelineno-0-100" id="__codelineno-0-100" name="__codelineno-0-100"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-101"><a href="#__codelineno-0-101" id="__codelineno-0-101" name="__codelineno-0-101"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-102"><a href="#__codelineno-0-102" id="__codelineno-0-102" name="__codelineno-0-102"></a><span class="w"> </span><span class="c1">/// Runs trough every drivers live data to recover the drivers that are close to each others</span>
</span><span id="__span-0-103"><a href="#__codelineno-0-103" id="__codelineno-0-103" name="__codelineno-0-103"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-104"><a href="#__codelineno-0-104" id="__codelineno-0-104" name="__codelineno-0-104"></a><span class="w"> </span><span class="c1">/// &lt;param name="pnlBattles"&gt;The control that will host the displayed battles&lt;/param&gt;</span>
</span><span id="__span-0-105"><a href="#__codelineno-0-105" id="__codelineno-0-105" name="__codelineno-0-105"></a><span class="w"> </span><span class="c1">/// &lt;param name="form1"&gt;The main form. It needs to have a method called 'btnDriver_Click' so it can reads the buttons clicks&lt;/param&gt;</span>
</span><span id="__span-0-106"><a href="#__codelineno-0-106" id="__codelineno-0-106" name="__codelineno-0-106"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayBattles</span><span class="p">(</span><span class="n">Panel</span><span class="w"> </span><span class="n">pnlBattles</span><span class="p">,</span><span class="n">Main</span><span class="w"> </span><span class="n">form1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-107"><a href="#__codelineno-0-107" id="__codelineno-0-107" name="__codelineno-0-107"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-108"><a href="#__codelineno-0-108" id="__codelineno-0-108" name="__codelineno-0-108"></a><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">oldDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">null</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-109"><a href="#__codelineno-0-109" id="__codelineno-0-109" name="__codelineno-0-109"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="n">DriverData</span><span class="w"> </span><span class="n">d1</span><span class="p">,</span><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">d2</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gap</span><span class="p">)&gt;</span><span class="w"> </span><span class="n">battles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="n">DriverData</span><span class="w"> </span><span class="n">d1</span><span class="p">,</span><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">d2</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gap</span><span class="p">)&gt;();</span><span class="w"></span>
</span><span id="__span-0-110"><a href="#__codelineno-0-110" id="__codelineno-0-110" name="__codelineno-0-110"></a><span class="w"> </span><span class="c1">//Search trough all the drivers and finds the one battling</span>
</span><span id="__span-0-111"><a href="#__codelineno-0-111" id="__codelineno-0-111" name="__codelineno-0-111"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="n">DriverData</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">])</span><span class="w"></span>
</span><span id="__span-0-112"><a href="#__codelineno-0-112" id="__codelineno-0-112" name="__codelineno-0-112"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-113"><a href="#__codelineno-0-113" id="__codelineno-0-113" name="__codelineno-0-113"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">oldDriver</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Position</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">oldDriver</span><span class="p">.</span><span class="n">Position</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-114"><a href="#__codelineno-0-114" id="__codelineno-0-114" name="__codelineno-0-114"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-115"><a href="#__codelineno-0-115" id="__codelineno-0-115" name="__codelineno-0-115"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">oldDriver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-116"><a href="#__codelineno-0-116" id="__codelineno-0-116" name="__codelineno-0-116"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-117"><a href="#__codelineno-0-117" id="__codelineno-0-117" name="__codelineno-0-117"></a><span class="w"> </span><span class="c1">//There is a problem with the drivers gaps</span>
</span><span id="__span-0-118"><a href="#__codelineno-0-118" id="__codelineno-0-118" name="__codelineno-0-118"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-119"><a href="#__codelineno-0-119" id="__codelineno-0-119" name="__codelineno-0-119"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-120"><a href="#__codelineno-0-120" id="__codelineno-0-120" name="__codelineno-0-120"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-121"><a href="#__codelineno-0-121" id="__codelineno-0-121" name="__codelineno-0-121"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gap</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">oldDriver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-122"><a href="#__codelineno-0-122" id="__codelineno-0-122" name="__codelineno-0-122"></a><span class="w"> </span><span class="c1">//3000ms is 3s. If drivers are that close then they are definitely in battle. If they are farther then maybe not</span>
</span><span id="__span-0-123"><a href="#__codelineno-0-123" id="__codelineno-0-123" name="__codelineno-0-123"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">gap</span><span class="w"> </span><span class="p">&lt;=</span><span class="w"> </span><span class="m">3000</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-124"><a href="#__codelineno-0-124" id="__codelineno-0-124" name="__codelineno-0-124"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-125"><a href="#__codelineno-0-125" id="__codelineno-0-125" name="__codelineno-0-125"></a><span class="w"> </span><span class="n">battles</span><span class="p">.</span><span class="n">Add</span><span class="p">((</span><span class="n">oldDriver</span><span class="p">,</span><span class="w"> </span><span class="n">driver</span><span class="p">,</span><span class="w"> </span><span class="n">gap</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-126"><a href="#__codelineno-0-126" id="__codelineno-0-126" name="__codelineno-0-126"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-127"><a href="#__codelineno-0-127" id="__codelineno-0-127" name="__codelineno-0-127"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-128"><a href="#__codelineno-0-128" id="__codelineno-0-128" name="__codelineno-0-128"></a><span class="w"> </span><span class="n">oldDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-129"><a href="#__codelineno-0-129" id="__codelineno-0-129" name="__codelineno-0-129"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-130"><a href="#__codelineno-0-130" id="__codelineno-0-130" name="__codelineno-0-130"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-131"><a href="#__codelineno-0-131" id="__codelineno-0-131" name="__codelineno-0-131"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-132"><a href="#__codelineno-0-132" id="__codelineno-0-132" name="__codelineno-0-132"></a><span class="w"> </span><span class="n">oldDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-133"><a href="#__codelineno-0-133" id="__codelineno-0-133" name="__codelineno-0-133"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-134"><a href="#__codelineno-0-134" id="__codelineno-0-134" name="__codelineno-0-134"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-135"><a href="#__codelineno-0-135" id="__codelineno-0-135" name="__codelineno-0-135"></a><span class="w"> </span><span class="c1">//We will only display 4 battles max</span>
</span><span id="__span-0-136"><a href="#__codelineno-0-136" id="__codelineno-0-136" name="__codelineno-0-136"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxBattles</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">4</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-137"><a href="#__codelineno-0-137" id="__codelineno-0-137" name="__codelineno-0-137"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">battles</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-138"><a href="#__codelineno-0-138" id="__codelineno-0-138" name="__codelineno-0-138"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-139"><a href="#__codelineno-0-139" id="__codelineno-0-139" name="__codelineno-0-139"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-140"><a href="#__codelineno-0-140" id="__codelineno-0-140" name="__codelineno-0-140"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">maxBattles</span><span class="p">,</span><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">battles</span><span class="p">.</span><span class="n">Count</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-141"><a href="#__codelineno-0-141" id="__codelineno-0-141" name="__codelineno-0-141"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-142"><a href="#__codelineno-0-142" id="__codelineno-0-142" name="__codelineno-0-142"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">((</span><span class="n">DriverData</span><span class="w"> </span><span class="n">d1</span><span class="p">,</span><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">d2</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gap</span><span class="p">)</span><span class="w"> </span><span class="n">battle</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">battles</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-143"><a href="#__codelineno-0-143" id="__codelineno-0-143" name="__codelineno-0-143"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-144"><a href="#__codelineno-0-144" id="__codelineno-0-144" name="__codelineno-0-144"></a><span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">maxBattles</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-145"><a href="#__codelineno-0-145" id="__codelineno-0-145" name="__codelineno-0-145"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-146"><a href="#__codelineno-0-146" id="__codelineno-0-146" name="__codelineno-0-146"></a><span class="w"> </span><span class="c1">//*hardcoding* the different controls that needs to be added to the panel.</span>
</span><span id="__span-0-147"><a href="#__codelineno-0-147" id="__codelineno-0-147" name="__codelineno-0-147"></a><span class="w"> </span><span class="c1">//Note : this stuff could totally be handled by the Form with method returning a list of the drivers. It was just easier for me at the time to code it this way but its not the prettiest</span>
</span><span id="__span-0-148"><a href="#__codelineno-0-148" id="__codelineno-0-148" name="__codelineno-0-148"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btnFirstDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-149"><a href="#__codelineno-0-149" id="__codelineno-0-149" name="__codelineno-0-149"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">btnSecondDriver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-150"><a href="#__codelineno-0-150" id="__codelineno-0-150" name="__codelineno-0-150"></a><span class="w"> </span><span class="n">Label</span><span class="w"> </span><span class="n">lblGap</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Label</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-151"><a href="#__codelineno-0-151" id="__codelineno-0-151" name="__codelineno-0-151"></a>
</span><span id="__span-0-152"><a href="#__codelineno-0-152" id="__codelineno-0-152" name="__codelineno-0-152"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnFirstDriver</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-153"><a href="#__codelineno-0-153" id="__codelineno-0-153" name="__codelineno-0-153"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">lblGap</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-154"><a href="#__codelineno-0-154" id="__codelineno-0-154" name="__codelineno-0-154"></a><span class="w"> </span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">btnSecondDriver</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-155"><a href="#__codelineno-0-155" id="__codelineno-0-155" name="__codelineno-0-155"></a>
</span><span id="__span-0-156"><a href="#__codelineno-0-156" id="__codelineno-0-156" name="__codelineno-0-156"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Left</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-157"><a href="#__codelineno-0-157" id="__codelineno-0-157" name="__codelineno-0-157"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-158"><a href="#__codelineno-0-158" id="__codelineno-0-158" name="__codelineno-0-158"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Anchor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Right</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Left</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="n">AnchorStyles</span><span class="p">.</span><span class="n">Top</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-159"><a href="#__codelineno-0-159" id="__codelineno-0-159" name="__codelineno-0-159"></a>
</span><span id="__span-0-160"><a href="#__codelineno-0-160" id="__codelineno-0-160" name="__codelineno-0-160"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">TextAlign</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">ContentAlignment</span><span class="p">.</span><span class="n">MiddleCenter</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-161"><a href="#__codelineno-0-161" id="__codelineno-0-161" name="__codelineno-0-161"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Font</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Font</span><span class="p">(</span><span class="n">lblGap</span><span class="p">.</span><span class="n">Font</span><span class="p">.</span><span class="n">FontFamily</span><span class="p">,</span><span class="w"> </span><span class="m">15</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-162"><a href="#__codelineno-0-162" id="__codelineno-0-162" name="__codelineno-0-162"></a>
</span><span id="__span-0-163"><a href="#__codelineno-0-163" id="__codelineno-0-163" name="__codelineno-0-163"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnDriver_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-164"><a href="#__codelineno-0-164" id="__codelineno-0-164" name="__codelineno-0-164"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnDriver_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-165"><a href="#__codelineno-0-165" id="__codelineno-0-165" name="__codelineno-0-165"></a>
</span><span id="__span-0-166"><a href="#__codelineno-0-166" id="__codelineno-0-166" name="__codelineno-0-166"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-167"><a href="#__codelineno-0-167" id="__codelineno-0-167" name="__codelineno-0-167"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-168"><a href="#__codelineno-0-168" id="__codelineno-0-168" name="__codelineno-0-168"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-169"><a href="#__codelineno-0-169" id="__codelineno-0-169" name="__codelineno-0-169"></a>
</span><span id="__span-0-170"><a href="#__codelineno-0-170" id="__codelineno-0-170" name="__codelineno-0-170"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-171"><a href="#__codelineno-0-171" id="__codelineno-0-171" name="__codelineno-0-171"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-172"><a href="#__codelineno-0-172" id="__codelineno-0-172" name="__codelineno-0-172"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">,</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-173"><a href="#__codelineno-0-173" id="__codelineno-0-173" name="__codelineno-0-173"></a>
</span><span id="__span-0-174"><a href="#__codelineno-0-174" id="__codelineno-0-174" name="__codelineno-0-174"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-175"><a href="#__codelineno-0-175" id="__codelineno-0-175" name="__codelineno-0-175"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">1</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-176"><a href="#__codelineno-0-176" id="__codelineno-0-176" name="__codelineno-0-176"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="n">pnlBattles</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">2</span><span class="p">,</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">maxUiHeight</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-177"><a href="#__codelineno-0-177" id="__codelineno-0-177" name="__codelineno-0-177"></a>
</span><span id="__span-0-178"><a href="#__codelineno-0-178" id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">battle</span><span class="p">.</span><span class="n">d1</span><span class="p">.</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-179"><a href="#__codelineno-0-179" id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"+ "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">battle</span><span class="p">.</span><span class="n">gap</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-180"><a href="#__codelineno-0-180" id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">battle</span><span class="p">.</span><span class="n">gap</span><span class="w"> </span><span class="p">&lt;=</span><span class="w"> </span><span class="m">2000</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-181"><a href="#__codelineno-0-181" id="__codelineno-0-181" name="__codelineno-0-181"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Yellow</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-182"><a href="#__codelineno-0-182" id="__codelineno-0-182" name="__codelineno-0-182"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">battle</span><span class="p">.</span><span class="n">gap</span><span class="w"> </span><span class="p">&lt;=</span><span class="w"> </span><span class="m">1000</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-183"><a href="#__codelineno-0-183" id="__codelineno-0-183" name="__codelineno-0-183"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">ForeColor</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Color</span><span class="p">.</span><span class="n">Green</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-184"><a href="#__codelineno-0-184" id="__codelineno-0-184" name="__codelineno-0-184"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">battle</span><span class="p">.</span><span class="n">d2</span><span class="p">.</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-185"><a href="#__codelineno-0-185" id="__codelineno-0-185" name="__codelineno-0-185"></a>
</span><span id="__span-0-186"><a href="#__codelineno-0-186" id="__codelineno-0-186" name="__codelineno-0-186"></a><span class="w"> </span><span class="n">btnFirstDriver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">battle</span><span class="p">.</span><span class="n">d1</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">"_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">id</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-187"><a href="#__codelineno-0-187" id="__codelineno-0-187" name="__codelineno-0-187"></a><span class="w"> </span><span class="n">lblGap</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"lbl_Gap_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">id</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-188"><a href="#__codelineno-0-188" id="__codelineno-0-188" name="__codelineno-0-188"></a><span class="w"> </span><span class="n">btnSecondDriver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">battle</span><span class="p">.</span><span class="n">d2</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">"_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">id</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-189"><a href="#__codelineno-0-189" id="__codelineno-0-189" name="__codelineno-0-189"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-190"><a href="#__codelineno-0-190" id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-191"><a href="#__codelineno-0-191" id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-192"><a href="#__codelineno-0-192" id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-193"><a href="#__codelineno-0-193" id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-194"><a href="#__codelineno-0-194" id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="w"> </span><span class="n">id</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-195"><a href="#__codelineno-0-195" id="__codelineno-0-195" name="__codelineno-0-195"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-196"><a href="#__codelineno-0-196" id="__codelineno-0-196" name="__codelineno-0-196"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-197"><a href="#__codelineno-0-197" id="__codelineno-0-197" name="__codelineno-0-197"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-198"><a href="#__codelineno-0-198" id="__codelineno-0-198" name="__codelineno-0-198"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-199"><a href="#__codelineno-0-199" id="__codelineno-0-199" name="__codelineno-0-199"></a><span class="w"> </span><span class="c1">/// Searches the fastest and slowests drivers and displays them in the given panels</span>
</span><span id="__span-0-200"><a href="#__codelineno-0-200" id="__codelineno-0-200" name="__codelineno-0-200"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-201"><a href="#__codelineno-0-201" id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="w"> </span><span class="c1">/// &lt;param name="pnlFastest"&gt;Panel that will contain the constructed controls&lt;/param&gt;</span>
</span><span id="__span-0-202"><a href="#__codelineno-0-202" id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="c1">/// &lt;param name="pnlSlowest"&gt;Panel that will contain the constructed controls&lt;/param&gt;</span>
</span><span id="__span-0-203"><a href="#__codelineno-0-203" id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="w"> </span><span class="c1">/// &lt;param name="form1"&gt;The main form that needs to implement the method btnDriver_Click to allow it to recover custom buttons click&lt;/param&gt;</span>
</span><span id="__span-0-204"><a href="#__codelineno-0-204" id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayTimesDeltas</span><span class="p">(</span><span class="n">Panel</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">,</span><span class="n">Panel</span><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">,</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">form1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-205"><a href="#__codelineno-0-205" id="__codelineno-0-205" name="__codelineno-0-205"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-206"><a href="#__codelineno-0-206" id="__codelineno-0-206" name="__codelineno-0-206"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="kt">int</span><span class="w"> </span><span class="n">avg</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">driverName</span><span class="p">)&gt;</span><span class="w"> </span><span class="n">averages</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="kt">int</span><span class="w"> </span><span class="n">avg</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">driverName</span><span class="p">)&gt;();</span><span class="w"></span>
</span><span id="__span-0-207"><a href="#__codelineno-0-207" id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="n">DriverData</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">])</span><span class="w"></span>
</span><span id="__span-0-208"><a href="#__codelineno-0-208" id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-209"><a href="#__codelineno-0-209" id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="c1">//We want to recover the last 5 lap times </span>
</span><span id="__span-0-210"><a href="#__codelineno-0-210" id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;(</span><span class="kt">int</span><span class="w"> </span><span class="n">lapTime</span><span class="p">,</span><span class="kt">int</span><span class="w"> </span><span class="n">lap</span><span class="p">)&gt;</span><span class="w"> </span><span class="n">laps</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Storage</span><span class="p">.</span><span class="n">GetDriverLaptimes</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="p">,</span><span class="m">5</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-211"><a href="#__codelineno-0-211" id="__codelineno-0-211" name="__codelineno-0-211"></a><span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">laps</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-212"><a href="#__codelineno-0-212" id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-213"><a href="#__codelineno-0-213" id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">avg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-214"><a href="#__codelineno-0-214" id="__codelineno-0-214" name="__codelineno-0-214"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">((</span><span class="kt">int</span><span class="w"> </span><span class="n">lapTime</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">lap</span><span class="p">)</span><span class="w"> </span><span class="n">lap</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">laps</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-215"><a href="#__codelineno-0-215" id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-216"><a href="#__codelineno-0-216" id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="w"> </span><span class="n">avg</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">lap</span><span class="p">.</span><span class="n">lapTime</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-217"><a href="#__codelineno-0-217" id="__codelineno-0-217" name="__codelineno-0-217"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-218"><a href="#__codelineno-0-218" id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="w"> </span><span class="n">avg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">avg</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">laps</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-219"><a href="#__codelineno-0-219" id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="n">averages</span><span class="p">.</span><span class="n">Add</span><span class="p">((</span><span class="n">avg</span><span class="p">,</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-220"><a href="#__codelineno-0-220" id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-221"><a href="#__codelineno-0-221" id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-222"><a href="#__codelineno-0-222" id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">numberOfDriversToShow</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">5</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-223"><a href="#__codelineno-0-223" id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">averages</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="n">averages</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="n">numberOfDriversToShow</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-224"><a href="#__codelineno-0-224" id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-225"><a href="#__codelineno-0-225" id="__codelineno-0-225" name="__codelineno-0-225"></a><span class="w"> </span><span class="n">averages</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">averages</span><span class="p">.</span><span class="n">OrderBy</span><span class="p">(</span><span class="n">item</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="n">item</span><span class="p">.</span><span class="n">avg</span><span class="p">).</span><span class="n">ToList</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-226"><a href="#__codelineno-0-226" id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-227"><a href="#__codelineno-0-227" id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-228"><a href="#__codelineno-0-228" id="__codelineno-0-228" name="__codelineno-0-228"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxUiSize</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">numberOfDriversToShow</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-229"><a href="#__codelineno-0-229" id="__codelineno-0-229" name="__codelineno-0-229"></a>
</span><span id="__span-0-230"><a href="#__codelineno-0-230" id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="w"> </span><span class="c1">//Displays the fastest drivers</span>
</span><span id="__span-0-231"><a href="#__codelineno-0-231" id="__codelineno-0-231" name="__codelineno-0-231"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">numberOfDriversToShow</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-232"><a href="#__codelineno-0-232" id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-233"><a href="#__codelineno-0-233" id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">newButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-234"><a href="#__codelineno-0-234" id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">avg</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">driver</span><span class="p">)</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">averages</span><span class="p">[</span><span class="n">i</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-235"><a href="#__codelineno-0-235" id="__codelineno-0-235" name="__codelineno-0-235"></a><span class="w"> </span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">newButton</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-236"><a href="#__codelineno-0-236" id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">maxUiSize</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-237"><a href="#__codelineno-0-237" id="__codelineno-0-237" name="__codelineno-0-237"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">maxUiSize</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-238"><a href="#__codelineno-0-238" id="__codelineno-0-238" name="__codelineno-0-238"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="n">driver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-239"><a href="#__codelineno-0-239" id="__codelineno-0-239" name="__codelineno-0-239"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-240"><a href="#__codelineno-0-240" id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">"_fastest_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-241"><a href="#__codelineno-0-241" id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnDriver_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-242"><a href="#__codelineno-0-242" id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="w"> </span><span class="c1">//We take the average time lost per lap</span>
</span><span id="__span-0-243"><a href="#__codelineno-0-243" id="__codelineno-0-243" name="__codelineno-0-243"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-244"><a href="#__codelineno-0-244" id="__codelineno-0-244" name="__codelineno-0-244"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="s">" + "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">Convert</span><span class="p">.</span><span class="n">ToInt32</span><span class="p">(((</span><span class="kt">float</span><span class="p">)</span><span class="n">data</span><span class="p">.</span><span class="n">avg</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="n">averages</span><span class="p">[</span><span class="m">0</span><span class="p">].</span><span class="n">avg</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">5.0f</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-245"><a href="#__codelineno-0-245" id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-246"><a href="#__codelineno-0-246" id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="c1">//Displays the slowests drivers</span>
</span><span id="__span-0-247"><a href="#__codelineno-0-247" id="__codelineno-0-247" name="__codelineno-0-247"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">badId</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-248"><a href="#__codelineno-0-248" id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">averages</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">&gt;=</span><span class="w"> </span><span class="n">averages</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">numberOfDriversToShow</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="p">--)</span><span class="w"></span>
</span><span id="__span-0-249"><a href="#__codelineno-0-249" id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-250"><a href="#__codelineno-0-250" id="__codelineno-0-250" name="__codelineno-0-250"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">newButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-251"><a href="#__codelineno-0-251" id="__codelineno-0-251" name="__codelineno-0-251"></a><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">avg</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">driver</span><span class="p">)</span><span class="w"> </span><span class="n">data</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">averages</span><span class="p">[</span><span class="n">i</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-252"><a href="#__codelineno-0-252" id="__codelineno-0-252" name="__codelineno-0-252"></a><span class="w"> </span><span class="n">pnlSlowest</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">newButton</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-253"><a href="#__codelineno-0-253" id="__codelineno-0-253" name="__codelineno-0-253"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnlFastest</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">maxUiSize</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-254"><a href="#__codelineno-0-254" id="__codelineno-0-254" name="__codelineno-0-254"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">badId</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">maxUiSize</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-255"><a href="#__codelineno-0-255" id="__codelineno-0-255" name="__codelineno-0-255"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="n">driver</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-256"><a href="#__codelineno-0-256" id="__codelineno-0-256" name="__codelineno-0-256"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-257"><a href="#__codelineno-0-257" id="__codelineno-0-257" name="__codelineno-0-257"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">data</span><span class="p">.</span><span class="n">driver</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">"_slowest_"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-258"><a href="#__codelineno-0-258" id="__codelineno-0-258" name="__codelineno-0-258"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnDriver_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-259"><a href="#__codelineno-0-259" id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="w"> </span><span class="c1">//We take the average time lost per lap</span>
</span><span id="__span-0-260"><a href="#__codelineno-0-260" id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="s">" + "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">Convert</span><span class="p">.</span><span class="n">ToInt32</span><span class="p">(((</span><span class="kt">float</span><span class="p">)</span><span class="n">data</span><span class="p">.</span><span class="n">avg</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="n">averages</span><span class="p">[</span><span class="m">0</span><span class="p">].</span><span class="n">avg</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">5.0f</span><span class="p">));</span><span class="w"></span>
</span><span id="__span-0-261"><a href="#__codelineno-0-261" id="__codelineno-0-261" name="__codelineno-0-261"></a><span class="w"> </span><span class="n">badId</span><span class="p">++;</span><span class="w"></span>
</span><span id="__span-0-262"><a href="#__codelineno-0-262" id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-263"><a href="#__codelineno-0-263" id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-264"><a href="#__codelineno-0-264" id="__codelineno-0-264" name="__codelineno-0-264"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-265"><a href="#__codelineno-0-265" id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-266"><a href="#__codelineno-0-266" id="__codelineno-0-266" name="__codelineno-0-266"></a><span class="w"> </span><span class="c1">/// Will add to the list of overtakes the different changes of position</span>
</span><span id="__span-0-267"><a href="#__codelineno-0-267" id="__codelineno-0-267" name="__codelineno-0-267"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-268"><a href="#__codelineno-0-268" id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="c1">/// &lt;param name="lsbResult"&gt;The listbox containing all the infos&lt;/param&gt;</span>
</span><span id="__span-0-269"><a href="#__codelineno-0-269" id="__codelineno-0-269" name="__codelineno-0-269"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayOvertakes</span><span class="p">(</span><span class="n">ListBox</span><span class="w"> </span><span class="n">lsbResult</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-270"><a href="#__codelineno-0-270" id="__codelineno-0-270" name="__codelineno-0-270"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-271"><a href="#__codelineno-0-271" id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="c1">//Note : This method SHOULD REALLY not do this but just return a string or a list of string with the new overtakes so the form can handle it as it wishes</span>
</span><span id="__span-0-272"><a href="#__codelineno-0-272" id="__codelineno-0-272" name="__codelineno-0-272"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-273"><a href="#__codelineno-0-273" id="__codelineno-0-273" name="__codelineno-0-273"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-274"><a href="#__codelineno-0-274" id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="n">DriverData</span><span class="p">&gt;</span><span class="w"> </span><span class="n">oldList</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-275"><a href="#__codelineno-0-275" id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="n">DriverData</span><span class="p">&gt;</span><span class="w"> </span><span class="n">newList</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-276"><a href="#__codelineno-0-276" id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">].</span><span class="n">Count</span><span class="p">;</span><span class="n">i</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-277"><a href="#__codelineno-0-277" id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-278"><a href="#__codelineno-0-278" id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">oldList</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">Name</span><span class="w"> </span><span class="p">!=</span><span class="w"> </span><span class="n">newList</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">Name</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-279"><a href="#__codelineno-0-279" id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="c1">//There has been a change in the standings</span>
</span><span id="__span-0-280"><a href="#__codelineno-0-280" id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">oldList</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span><span class="n">y</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-281"><a href="#__codelineno-0-281" id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-282"><a href="#__codelineno-0-282" id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">newList</span><span class="p">[</span><span class="n">y</span><span class="p">].</span><span class="n">Name</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="n">oldList</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">Name</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-283"><a href="#__codelineno-0-283" id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-284"><a href="#__codelineno-0-284" id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="w"> </span><span class="c1">//We found its new location</span>
</span><span id="__span-0-285"><a href="#__codelineno-0-285" id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="n">i</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-286"><a href="#__codelineno-0-286" id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-287"><a href="#__codelineno-0-287" id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="w"> </span><span class="c1">//The driver overtook someone</span>
</span><span id="__span-0-288"><a href="#__codelineno-0-288" id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="w"> </span><span class="n">lsbResult</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">newList</span><span class="p">[</span><span class="n">y</span><span class="p">].</span><span class="n">Name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" climbed to "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-289"><a href="#__codelineno-0-289" id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-290"><a href="#__codelineno-0-290" id="__codelineno-0-290" name="__codelineno-0-290"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-291"><a href="#__codelineno-0-291" id="__codelineno-0-291" name="__codelineno-0-291"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-292"><a href="#__codelineno-0-292" id="__codelineno-0-292" name="__codelineno-0-292"></a><span class="w"> </span><span class="c1">//The driver got overtook by someone</span>
</span><span id="__span-0-293"><a href="#__codelineno-0-293" id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="w"> </span><span class="n">lsbResult</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">newList</span><span class="p">[</span><span class="n">y</span><span class="p">].</span><span class="n">Name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" fell to "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-294"><a href="#__codelineno-0-294" id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-295"><a href="#__codelineno-0-295" id="__codelineno-0-295" name="__codelineno-0-295"></a>
</span><span id="__span-0-296"><a href="#__codelineno-0-296" id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-297"><a href="#__codelineno-0-297" id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-298"><a href="#__codelineno-0-298" id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-299"><a href="#__codelineno-0-299" id="__codelineno-0-299" name="__codelineno-0-299"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-300"><a href="#__codelineno-0-300" id="__codelineno-0-300" name="__codelineno-0-300"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-301"><a href="#__codelineno-0-301" id="__codelineno-0-301" name="__codelineno-0-301"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-302"><a href="#__codelineno-0-302" id="__codelineno-0-302" name="__codelineno-0-302"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-303"><a href="#__codelineno-0-303" id="__codelineno-0-303" name="__codelineno-0-303"></a><span class="w"> </span><span class="c1">/// Displays a messageBox containing the infos about a lap time</span>
</span><span id="__span-0-304"><a href="#__codelineno-0-304" id="__codelineno-0-304" name="__codelineno-0-304"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-305"><a href="#__codelineno-0-305" id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="w"> </span><span class="c1">/// &lt;param name="driverName"&gt;The name of the driver that has done the lapTime&lt;/param&gt;</span>
</span><span id="__span-0-306"><a href="#__codelineno-0-306" id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="c1">/// &lt;param name="Lap"&gt;The number of the lap on wich the lapTime has been set (CAUTION ITS NOT THE RACING LAP ITS FROM THE DB)&lt;/param&gt;</span>
</span><span id="__span-0-307"><a href="#__codelineno-0-307" id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="c1">/// &lt;param name="LapTime"&gt;The time (in ms) of the lap&lt;/param&gt;</span>
</span><span id="__span-0-308"><a href="#__codelineno-0-308" id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayLapTimeInfos</span><span class="p">(</span><span class="kt">string</span><span class="w"> </span><span class="n">driverName</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">Lap</span><span class="p">,</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">LapTime</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-309"><a href="#__codelineno-0-309" id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-310"><a href="#__codelineno-0-310" id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="kt">int</span><span class="p">&gt;</span><span class="w"> </span><span class="n">sectors</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Storage</span><span class="p">.</span><span class="n">GetSectorsFromLapTime</span><span class="p">(</span><span class="n">driverName</span><span class="p">,</span><span class="w"> </span><span class="n">Lap</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-311"><a href="#__codelineno-0-311" id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">"Lap time infos"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Environment</span><span class="p">.</span><span class="n">NewLine</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-312"><a href="#__codelineno-0-312" id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">LapTime</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Environment</span><span class="p">.</span><span class="n">NewLine</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-313"><a href="#__codelineno-0-313" id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sectors</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-314"><a href="#__codelineno-0-314" id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="s">"Sector 1 : "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">sectors</span><span class="p">[</span><span class="m">0</span><span class="p">])</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Environment</span><span class="p">.</span><span class="n">NewLine</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-315"><a href="#__codelineno-0-315" id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sectors</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-316"><a href="#__codelineno-0-316" id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="s">"Sector 2 : "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">sectors</span><span class="p">[</span><span class="m">1</span><span class="p">])</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Environment</span><span class="p">.</span><span class="n">NewLine</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-317"><a href="#__codelineno-0-317" id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sectors</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-318"><a href="#__codelineno-0-318" id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="w"> </span><span class="n">message</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="s">"Sector 3 : "</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">sectors</span><span class="p">[</span><span class="m">2</span><span class="p">])</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Environment</span><span class="p">.</span><span class="n">NewLine</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-319"><a href="#__codelineno-0-319" id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="w"> </span><span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="n">message</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-320"><a href="#__codelineno-0-320" id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-321"><a href="#__codelineno-0-321" id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="c1">/// &lt;summary&gt;</span>
</span><span id="__span-0-322"><a href="#__codelineno-0-322" id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="w"> </span><span class="c1">/// Displays the live ranking with the names of the drivers and their gap to the leader in the right order</span>
</span><span id="__span-0-323"><a href="#__codelineno-0-323" id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="w"> </span><span class="c1">/// &lt;/summary&gt;</span>
</span><span id="__span-0-324"><a href="#__codelineno-0-324" id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="w"> </span><span class="c1">/// &lt;param name="pnl"&gt;The control that will host all the new controls&lt;/param&gt;</span>
</span><span id="__span-0-325"><a href="#__codelineno-0-325" id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="w"> </span><span class="c1">/// &lt;param name="form1"&gt;The main form&lt;/param&gt;</span>
</span><span id="__span-0-326"><a href="#__codelineno-0-326" id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">void</span><span class="w"> </span><span class="nf">DisplayLiveRanking</span><span class="p">(</span><span class="n">Panel</span><span class="w"> </span><span class="n">pnl</span><span class="p">,</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">form1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-327"><a href="#__codelineno-0-327" id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-328"><a href="#__codelineno-0-328" id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-329"><a href="#__codelineno-0-329" id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-330"><a href="#__codelineno-0-330" id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="w"> </span><span class="n">pnl</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Clear</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-331"><a href="#__codelineno-0-331" id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="w"> </span><span class="c1">//Gets the last item that should be the most recent data</span>
</span><span id="__span-0-332"><a href="#__codelineno-0-332" id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="w"> </span><span class="n">List</span><span class="p">&lt;</span><span class="n">DriverData</span><span class="p">&gt;</span><span class="w"> </span><span class="n">liveData</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">LiveDriverDataLogs</span><span class="p">[</span><span class="n">LiveDriverDataLogs</span><span class="p">.</span><span class="n">Count</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-333"><a href="#__codelineno-0-333" id="__codelineno-0-333" name="__codelineno-0-333"></a>
</span><span id="__span-0-334"><a href="#__codelineno-0-334" id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="w"> </span><span class="n">Button</span><span class="p">[]</span><span class="w"> </span><span class="n">buttons</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">[</span><span class="n">liveData</span><span class="p">.</span><span class="n">Count</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-335"><a href="#__codelineno-0-335" id="__codelineno-0-335" name="__codelineno-0-335"></a>
</span><span id="__span-0-336"><a href="#__codelineno-0-336" id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="n">Size</span><span class="w"> </span><span class="n">buttonDimensions</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Size</span><span class="p">(</span><span class="n">pnl</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">pnl</span><span class="p">.</span><span class="n">Height</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">liveData</span><span class="p">.</span><span class="n">Count</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-337"><a href="#__codelineno-0-337" id="__codelineno-0-337" name="__codelineno-0-337"></a>
</span><span id="__span-0-338"><a href="#__codelineno-0-338" id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">driverCount</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">driverCount</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">liveData</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span><span class="w"> </span><span class="n">driverCount</span><span class="p">++)</span><span class="w"></span>
</span><span id="__span-0-339"><a href="#__codelineno-0-339" id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-340"><a href="#__codelineno-0-340" id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="n">Button</span><span class="w"> </span><span class="n">newButton</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Button</span><span class="p">();</span><span class="w"></span>
</span><span id="__span-0-341"><a href="#__codelineno-0-341" id="__codelineno-0-341" name="__codelineno-0-341"></a>
</span><span id="__span-0-342"><a href="#__codelineno-0-342" id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Size</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">buttonDimensions</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-343"><a href="#__codelineno-0-343" id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Location</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Point</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">driverCount</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">buttonDimensions</span><span class="p">.</span><span class="n">Height</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-344"><a href="#__codelineno-0-344" id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-345"><a href="#__codelineno-0-345" id="__codelineno-0-345" name="__codelineno-0-345"></a>
</span><span id="__span-0-346"><a href="#__codelineno-0-346" id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="w"> </span><span class="n">DriverData</span><span class="w"> </span><span class="n">driver</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">liveData</span><span class="p">[</span><span class="n">driverCount</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-0-347"><a href="#__codelineno-0-347" id="__codelineno-0-347" name="__codelineno-0-347"></a>
</span><span id="__span-0-348"><a href="#__codelineno-0-348" id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">Position</span><span class="w"> </span><span class="p">==</span><span class="w"> </span><span class="p">-</span><span class="m">1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-349"><a href="#__codelineno-0-349" id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-350"><a href="#__codelineno-0-350" id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="w"> </span><span class="c1">//Its a DNF</span>
</span><span id="__span-0-351"><a href="#__codelineno-0-351" id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Enabled</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">false</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-352"><a href="#__codelineno-0-352" id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-353"><a href="#__codelineno-0-353" id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">Position</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">1</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-354"><a href="#__codelineno-0-354" id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-355"><a href="#__codelineno-0-355" id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="s">" +"</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">Reader</span><span class="p">.</span><span class="n">ConvertMsToTime</span><span class="p">(</span><span class="n">driver</span><span class="p">.</span><span class="n">GapToLeader</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-356"><a href="#__codelineno-0-356" id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-357"><a href="#__codelineno-0-357" id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-0-358"><a href="#__codelineno-0-358" id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-359"><a href="#__codelineno-0-359" id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Text</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">driver</span><span class="p">.</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-360"><a href="#__codelineno-0-360" id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-361"><a href="#__codelineno-0-361" id="__codelineno-0-361" name="__codelineno-0-361"></a>
</span><span id="__span-0-362"><a href="#__codelineno-0-362" id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Name</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">liveData</span><span class="p">[</span><span class="n">driverCount</span><span class="p">].</span><span class="n">Name</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-363"><a href="#__codelineno-0-363" id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">TextAlign</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">ContentAlignment</span><span class="p">.</span><span class="n">MiddleLeft</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-364"><a href="#__codelineno-0-364" id="__codelineno-0-364" name="__codelineno-0-364"></a>
</span><span id="__span-0-365"><a href="#__codelineno-0-365" id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">FlatStyle</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">FlatStyle</span><span class="p">.</span><span class="n">Popup</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-366"><a href="#__codelineno-0-366" id="__codelineno-0-366" name="__codelineno-0-366"></a>
</span><span id="__span-0-367"><a href="#__codelineno-0-367" id="__codelineno-0-367" name="__codelineno-0-367"></a><span class="w"> </span><span class="n">newButton</span><span class="p">.</span><span class="n">Click</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">form1</span><span class="p">.</span><span class="n">btnDriver_Click</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-368"><a href="#__codelineno-0-368" id="__codelineno-0-368" name="__codelineno-0-368"></a>
</span><span id="__span-0-369"><a href="#__codelineno-0-369" id="__codelineno-0-369" name="__codelineno-0-369"></a><span class="w"> </span><span class="n">buttons</span><span class="p">[</span><span class="n">driverCount</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">newButton</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-0-370"><a href="#__codelineno-0-370" id="__codelineno-0-370" name="__codelineno-0-370"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-371"><a href="#__codelineno-0-371" id="__codelineno-0-371" name="__codelineno-0-371"></a><span class="w"> </span><span class="c1">//Note : It could be better to have this directly in the same loop</span>
</span><span id="__span-0-372"><a href="#__codelineno-0-372" id="__codelineno-0-372" name="__codelineno-0-372"></a><span class="w"> </span><span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="n">Button</span><span class="w"> </span><span class="n">button</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">buttons</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-0-373"><a href="#__codelineno-0-373" id="__codelineno-0-373" name="__codelineno-0-373"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-0-374"><a href="#__codelineno-0-374" id="__codelineno-0-374" name="__codelineno-0-374"></a><span class="w"> </span><span class="n">pnl</span><span class="p">.</span><span class="n">Controls</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">button</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-0-375"><a href="#__codelineno-0-375" id="__codelineno-0-375" name="__codelineno-0-375"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-376"><a href="#__codelineno-0-376" id="__codelineno-0-376" name="__codelineno-0-376"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-377"><a href="#__codelineno-0-377" id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-378"><a href="#__codelineno-0-378" id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-0-379"><a href="#__codelineno-0-379" id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav aria-label="Footer" class="md-footer__inner md-grid">
<a aria-label="Previous: Zone.cs" class="md-footer__link md-footer__link--prev" href="Zone.html" rel="prev">
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Zone.cs
</div>
</div>
</a>
<a aria-label="Next: DriverDrsWindow.cs" class="md-footer__link md-footer__link--next" href="DriverDrsWindow.html" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
DriverDrsWindow.cs
</div>
</div>
<div class="md-footer__button md-icon">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
©CFPTI Tech2
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
<script src="../assets/javascripts/bundle.48f2be22.min.js"></script>
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "width": "100%", "height": "auto", "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom"});})</script></body>
</html>