CarType enum Create an enumeration named CarType to represent the types of car as follows: - SUV - Hatchback - Sedan - Truck Car Class This class consists of the following members. All the properties have public getters and no setters. - Manufacturer : string - Make : int An int property to store the making year of car such as 2018 - Model : string - VI_NUMBER: int =1021 - This is a static field help create unique Vehicle Identification Number for each car object. This number should be automatically incremented by 100 each time the constructor of this class is called. This field will be used to initialize the VIN field. - VIN : int 0 This is a field represents unique Vehicle Identification Number for each car object which will be initialized from VI_NUMBER field. - BasePrice : double - Type : CarType - This property stores type of the car such as Sedan. It must receive value of the Define the following constructors for this class: Define the following constructors for this class: - Car (string manufacturer, int make, string model, double basePrice, CarType type) This constructor will assign received parameters to the respective class properties It should also increment VIN by 100 Implement the following methods in the class: - public static operator bool ==(Car first, Car second) - This method overrides the equality operator. This method will return true if the both the car objects have same manufacturer, model and type; otherwise, it returns false. This method will be used to compare two car objects. - public static operator bool I=(Car first, Car second) - This method overrides the not equality operator. This method is required by the compiler when the above method is implemented. It does the reverse of the above. This method will return false if the both the car objects have same manufacturer and model; otherwise, if either manufacturer, model or type is different, it returns true. This method is not used directly be any class. - override string Tostring() this method should display all the car details in appropriate format. Dealership Cars file This text file contains the car information that each dealership should have. The file records are structured using CSV format. The following is the sample record from file: DS_22_1, Toyota, 2019, Highlander, 49000.00, SUV In the record above, DS_22_1 indicates dealership ID to which the car belongs. The remaining are the car attributes which are self-explanatory. Dealership class This class consists of the following members. All the properties have public getters and no setters. - Carlist : List - ID : string - Name: string - Address: string property to store name of the dealership such as "The Six Dealership" A string property to store the address of dealership such as "1029 Main Street, Toronto" Define the following constructors for this class: - Dealership (string ID, string name, string address) This constructor will assign received parameters to the respective class properties It will then open and read file named "Dealership_Cars.txt" which is provided with this assignment. It will read one line at a time, and extract all the fields from the records. If the first field obtained from each file record matches dealership ID provided as parameter in constructor, create an object of Car class with the help of remaining fields obtained from file record. Add the created Car class object, to the CarList variable. Implement the following methods in the class: - void ShowCars(String manufacturer) this method will display all the cars for which the manufacturer is same as the given parameter in the output. For example, ShowCars("Toyota") will show all the cars from Carlist property that has Toyota as manufacturer. - void ShowCars(Car carToBeSearched) this method will display all the cars from CarList property if the object matches the given carToBesearched property. You will need to use == operator for this comparison. - override string ToString() this method should display all the dealership details in appropriate format. Testing To test your application, get the test harness function code provided in the attached file TestHarnes.ca, copy-paste the code to your Program class and execute. The output should like below: D1_22.TSe1, The 51x Cars, 1 Main Street, Toronto. 1121 i foyota. 2a10, itightander, 49eed, SU 02.22-n32t, Car street, Sth avenue, Aranpton 1421 i Toyota, 2a1e, Corotta, 17eeo, stdan Tepota Cars evailable in Deatershie 1 1121 i Toysta, 2019, Wightander. 4beed, sto 1221 i. Terota, 2ene, corotla, 19seo, Sedan Toyata Cars avaitable in Deatership. 2 1421 t ferota. 2ese, Ceretta, 17ede, Sodan Metching car(e) Irat Dealerahia 1 is Rotching carta) froe Dealerinip 2 , 1521 y |hyodat, 2eze; Clantra. 34see, Sedan Ferching carts t tree Dealershae 1 I Wothe Fatciing arisi frae bralerakin 3 I Hat of oindtiar car esonly mallabia in betb deatershie o Drat i fepeta, atid, Carntte, iset, Sestan