PRN212 - ASSIGNMENT 2
Develop A Car Management System
Using C# to create a WPF project to manage a Car Management System (Using the
given project to perform your solution).
Objective
Develop a desktop application using C# and WPF (Windows Presentation Foundation)
to manage car information. The application will connect to a predefined database,
CarManagementDB.
Requirements
1. User Interface (UI)
o Use WPF to create the user interface for the application (predefined design
provided).
o The main interface includes:
A search box to search for cars by name.
A DataGrid displaying a list of cars with the following information:
Car ID, Car Name, Make, Model, Year, Price, Fuel Type, Engine
Type, and Features.
Buttons for adding, updating, deleting, and closing the application.
o Details:
Year of Manufacture: Fill a ComboBox dynamically at runtime
(from 2018 -> now).
Color and Engine Type: Retrieved from the database.
2. Search Functionality
o Allow users to enter information into the search box and filter the car list
in the DataGrid based on the entered data.
3. Add New Car Functionality
o Display a new window to input detailed information about the car.
o Fields include: Car ID, Car Name, Brand, Model, Year of Manufacture,
Price, Color, Fuel Type, Engine Type, Order Date, and Features.
o On clicking the "Save" button, the information is added to the database.
4. Update Car Functionality
huyvv10@[Link] 1/4
o Allow users to select a car from the DataGrid and open a dialog window
to edit its details.
o Display the current car information in the corresponding input fields.
o Save the changes to the database and close the dialog after clicking the
"Save" button.
5. Delete Car Functionality
o Allow users to select a car from the DataGrid and delete it from the
database.
o Display a confirmation message before deletion.
6. Close Application Functionality
o Provide a "Close" button to exit the application.
Technical Requirements
• Programming Language: C#
• Framework: .NET 8 or later
• Technologies: Entity Framework Core, LINQ, SQL Server
• Database: Use the predefined CarManagementDB database.
• Architecture: Adhere to a clear MVVM (Model-View-ViewModel) pattern:
o Models - Data Access Layer (DAL): Handles database connections and
operations.
o ViewModels - Business Logic Layer (BLL): Manages the application’s
logic.
o Views - Presentation Layer (PL): Represents the user interface (WPF).
• Data Validation: Validate all input fields before saving data to the database (e.g.,
Price must not be negative, Order Date must not be in the future, etc.).
Evaluation Criteria
• Functionality: All specified features work correctly.
• Code Architecture: Code is well-structured, clear, and easy to read.
• Error Handling: Proper error handling is implemented, with appropriate
messages shown to the user when issues occur.
huyvv10@[Link] 2/4
huyvv10@[Link] 3/4
huyvv10@[Link] 4/4