Hướng dẫn chi tiết thực hiện bài thi PE BRN212

Hướng dẫn chi tiết làm bài thi PE BRN212

Giới thiệu

Nội dung chủ đề thi
  • Quản lý phiên sạc xe điện.

Bước 1: Mở Visual Studio và tạo dự án mới

  1. Mở Visual Studio.

    Video này hướng dẫn cách setup và hoàn thành một bài thi PE BRN212 với chủ đề quản lý phiên sạc xe điện trong hệ thống trạm sạc.

  2. Tạo một dự án mới chọn "WPF Application".

  3. Đặt tên dự án là Management. Mã sinh viên cần được nhập chính xác.

  4. Nhấn "Create" và đợi màn hình chính khởi tạo.

Bước 2: Tạo cơ cấu dự án ba lớp

2.1 Tạo các thư viện lớp
  1. Nhấp chuột phải vào dự án và chọn "Add New Project".
       - Chọn Class Library, tạo tầng dữ liệu (DL).
       - Tạo tiếp Class Library khác là Business Logic Layer (BLL).

2.2 Thiết lập Dependency
  1. Nhấp chuột phải vào project UI, chọn "Add Project Reference".
       - Chọn BLL để tạo dependency.
       - Đảm bảo rằng tùy chọn "Copy Local" được chọn.

  2. Nhấp chuột phải vào BLL, chọn "Add Project Reference".
       - Chọn DL đảm bảo tùy chọn tương tự.

2.3 Xác nhận và Build
  • Sau khi hoàn tất, nên kiểm tra lại xem có đủ ba lớp DL, BLL và UI.

  • Build project để kiểm tra sự thành công.

Bước 3: Cài đặt các gói NuGet

  1. Mở terminal trong thư mục DAL.

  2. Chạy lệnh cài đặt cho các gói NuGet cần thiết:
       - Gói đầu tiên.
       - Gói thứ hai: Entity Framework Design.
       - Các gói tiếp theo cho đến khi cài đủ năm gói yêu cầu.

  3. Kiểm tra lại xem gói đã cài đặt thành công trong thư mục DL.

Bước 4: Thiết lập appsettings.json

  1. Mở dự án UI, click chuột phải và chọn "Add New Item".
       - Tìm và thêm "JSON Configuration File" và đổi tên thành appsettings.json.

  2. Nhập đường dẫn kết nối đến database cần thiết và đảm bảo thông tin đăng nhập đúng.

  3. Đặt thuộc tính "Copy to Output Directory" thành "Copy Always".

Bước 5: Tạo các entity và context

  1. Sử dụng lệnh để tạo entity từ database dựa trên connection string đã thiết lập trong appsettings.json.

  2. Kiểm tra xem context và các entity đã được tạo thành công hay chưa

Bước 6: Thay đổi connection string trong hàm OnConfiguring

  1. Mở hàm OnConfiguring trong DB context.

  2. Xóa dòng connection string hiện tại và thay bằng cách truyền từ appsettings.json.

Bước 7: Thiết lập UI cho Login Window

  1. Quay lại UI project và tạo lại một Window WPF mới cho quá trình login.
       - Đặt tên là LoginWindow, cấu hình kích thước, title,…

  2. Đặt các thuộc tính cho các control như Label, TextBox cho email và password.
       - Label cho email và password.
       - Sử dụng PasswordBox cho nhập mật khẩu.
       - Tạo và định dạng Button login.

Bước 8: Tạo lớp Repository trong tầng DL

  1. Tạo một thư mục gọi là "Repositories" trong DL.

  2. Tạo một class mới tên là RepositoryBase với các phương thức chung cho repository như Create, Read, Update, Delete (CRUD).
       - Đây sẽ là một lớp generic, không cần tạo nhiều repository cho từng entity.

8.1 Xây dựng các hàm trong RepositoryBase
  1. Tạo hàm Add, Update, Delete, Get với các truy vấn cần thiết.
       - Sử dụng DbSet để truy cập vào các entity.

Bước 9: Thiết lập tầng BLL với các Service

  1. Tạo một thư mục Service trong BLL.

  2. Tạo một class cho UserAccountService và định nghĩa các hàm như Login với việc truyền tham số là email và password.
       - Đảm bảo rằng tài khoản tồn tại trong database.
       - Sử dụng phương thức get của repository để lấy thông tin tài khoản.

9.1 Xây dựng logic Login
  1. Kiểm tra quyền người dùng (administrator, manager, staff).
       - Nếu user là Member, hiện thông báo không có quyền.
       - Nếu mật khẩu sai, hiển thị thông báo tương ứng.

Bước 10: Kết nối UI với Business Logic

  1. Quay lại LoginWindow.xaml.cs và kết nối các Textbox với logic đăng nhập.
       - Đặt tên các control cho dễ nhận diện.
       - Thực hiện kiểm tra và xác thực trong sự kiện Click của nút login.

  2. Xử lý trường hợp đầu vào rỗng.

Kết luận

Video kết thúc với hướng dẫn xây dựng một hệ thống quản lý phiên sạc xe điện cơ bản. Hãy thử nghiệm và tinh chỉnh các chức năng để hoàn thiện bài thi.