Visual Studio 2019 and C#. This application is used in order to maintain a list of cars sold by a dealership that deals in used cars. It allows the user to create car records and search through them. Below are the detailed requirements:
1. Dashboard. The “Dashboard” form is the opening form that allows the user to pick an action. Based upon the choice of the user, one of the following forms get opened:
a. AddCarsForm: Accept Car Details
b. ReportForm: View Car Details
2. Add Cars Form: Allows adding a car record. The user may add a record of a used car with attributes listed below (make sure duplicates are eliminated):
a. LicensePlateNo (string, required, unique),
b. Type (ClearType, e.g. Hatchback, Sedan, MPV),
c. Make (string, required),
d. model year (int, e.g 2018, 2017…)
e. ImagePath (string, required, should be valid file name with extension .jpg, png, .gif)
f. market price (float, >0)).
g. Miles (int, >0),
h. TotalDepreciation (Readonly Property) ” should evaluate to total depreciation amount based upon the values of the depreciation record. Assume that a car depreciates by 10% each year and by .9% per 10,000Km. The application should not accept cars that are more than 5 years old or have a mileage > 110,000Km.
3. Report Form. The Report Form allows the user to view car records in a data grid view (make sure the image of the car is also visible in the grid view). Changing the selection in the grid view should show the market price and the depreciated value of the selected car in the controls at the bottom of the form.
Part 1 (50%): Class Definitions
1. Class Definitions: Ensure all required properties and methods are implemented. (20%)
2. Class Relationships: Ensure class relationships are correctly identified and implemented. (10%)
3. Validation Checks: Ensure required validation checks are in place. (10%)
4. XML Comments: Ensure all code elements are appropriately documented. (10%)
Part 2 (50%): UI
1. Dashboard: (5%)
2. Add Car Form: (25%)
3. Report Form: (20%)
UI design must follow the following guidelines:
1. Ensure all names follow the naming conventions used in class
2. Ensure the form is displayed centered on the screen.
3. Ensure that all controls are anchored properly to preserve layout quality when the form is resized.
4. Ensure the tab order of all controls is set correctly.
5. Protect all event handlers with try”catch control structures and display all errors resulting from the input validation/business logic, using MessageBoxes.