# DriverNameWindow.cs
``` cs
/// Author : Maxime Rohmer
/// Date : 30/05/2023
/// File : DriverNameWindow
/// Brief : Window containing infos about the name of the driver
/// Version : Alpha 1.0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
namespace TrackTrends
{
public class DriverNameWindow : Window
{
public DriverNameWindow(Bitmap image, Rectangle bounds, bool generateEngine = true) : base(image, bounds,generateEngine)
{
Name = "Name";
}
///
/// Decodes using OCR wich driver name is in the image
///
/// A list of all the names that can be on the image
/// a string representing the found driver name. It will be one of the ones given in the list
public override object DecodePng(List DriverList)
{
string result = "";
result = GetStringFromPng(WindowImage, Engine);
if (!IsADriver(DriverList, result))
{
//I put everything in uppercase to try to lower the chances of bad answers
result = FindClosestMatch(DriverList.ConvertAll(d => d.ToUpper()), result.ToUpper());
}
return result;
}
///
/// Verifies that the name found in the OCR is a valid name
///
/// The list of all the drivers name that can be found in the image
/// The driver you want to be sure if it exists or not
/// If ye or no the driver exists
private static bool IsADriver(List driverList, string potentialDriver)
{
bool result = false;
//I cant use drivers.Contains because it has missmatched cases and all
foreach (string name in driverList)
{
if (name.ToUpper() == potentialDriver.ToUpper())
result = true;
}
return result;
}
}
}
```