toanphbse128319 / FA24_SE1854_SWP391_G1_KoiVeterinaryServiceCenter

https://fa-24-se-1854-swp-391-g1-koi-veterinary-service-center.vercel.app
0 stars 0 forks source link

Có lỗi gì xảy ra khi làm các thao tác này thì hãy liên lạc với team, đừng im lặng mà tự gồng gánh

Cách đặt tên

LƯU Ý:

Cách thêm model, DbSet, Repository, ...

(Code chỉ mang tính chất minh họa)

Thêm model vào project
- Thêm ở backend/Repositories/Model/ với tên file là [tên table].cs và thêm các trường này vào trước khi viết class model ``` #nullable disable using System.ComponentModel.DataAnnotations.Schema; namespace Repositories.Model; // Tên table từ dababase ghi ở đây [Table("Account")] public class Account ```
Thêm repository của model vào backend
- Vào backend/Repositories/Context.cs, thêm dòng: ```public virtual DbSet<[tên bảng]> [tên bảng theo số nhiều] { get; set; }``` - Vào backend/Repositories/Repository, thêm file tên [tên table] + "Repository.cs" ``` using Repositories; using Repositories.Repository; public class ServiceRepository : GenericRepository { public ServiceRepository( Context context ) : base( context ){ } } ``` *Các chức năng lên quan tới logic, business, DAO các kiểu thì có thể viết ở đây. - Vào backend/Repositories/UnitOfWork.cs, thêm repository với viết vào ``` private ServiceRepository _serviceRepository; ... public ServiceRepository ServiceRepository { get { return _serviceRepository ??= new ServiceRepository(_context); } } ```

Cách dùng Bearer authentication để giới hạn theo role

thêm trong appsetting.js ``` "Jwt": { "Issuer": "FA24_SE1854_SWP391_G1_KoiVeterinaryServiceCenter", "Audience": "FA24_SE1854_SWP391_G1_KoiVeterinaryServiceCenter", "Key": "There is no secret key here, find somewhere else!" } ```
thêm giới hạn role vào 1 API endpoint
( Code chỉ mang tính chất minh họa ) ``` [HttpGet("{id}")] // Method của API [Authorize(Policy = "customer_policy")] // policy để giới hạn role try cập public async Task> GetServiceByID(string id){ // API endpoint ```
* Giới hạn của role tạm thời sẽ là Manager > Staff > Vet > Customer ( Guest thì đừng thêm policy là được )

Cách bật trang web swagger ui

dotnet run

http://localhost:5145/swagger/index.html

Cách dùng docker để chạy sqlserver

docker compose build

docker compose up

** Ko ctrl+c, ko đóng cmd, port docker sqlserver dùng là 1433:1433. (Port hose: port docker)

Cách để nhận mail

Paste thông tin này vào appsetting.json ``` "Mail": { "Server": "smtp.gmail.com", "Port": 587, "Email": "testingthingsse1854@gmail.com", "Password": "vhxrqjbyudfriseo" } ``` ** Tạm thời chỉ có đăng kí là gửi mail
Thay email cho project - Tạo gmail mới - Vào myaccount của google - Bật xác thực 2 bước - Vào App password tạo mới - Paste email và pass mới tạo vào appsetting.json

Cách dùng vnpay để thanh toán

Chỉ áp dụng với các booking với status là "Pending", và vnpay chưa ghi nhận bookingID đó (vnpay sẽ reset giao dịch vào ngày hôm sau) Nếu có lỗi thì liên lạc với Toàn ngay lập tức.

Thêm thông tin này vào appsetting.json ``` "Vnpay": { "vnp_TmnCode": "2WZZSYHY", "vnp_HashSecret": "69XJEIF1IFVQHLITS0OEKS6ABL4GNSVC", "vnp_Url": "https://sandbox.vnpayment.vn/paymentv2/vpcpay.html", "vnp_Version": "2.1.0", "vnp_returnUrl": "http://localhost:5145/api/VnPay/result" } ```
Thông tin thẻ dùng để thanh toán ``` Ngân hàng: NCB Số thẻ: 9704198526191432198 Tên chủ thẻ: NGUYEN VAN A Ngày phát hành: 07/15 Mật khẩu OTP: 123456 ```
Link kham khảo thêm thẻ test https://sandbox.vnpayment.vn/apis/vnpay-demo/

Cách dùng postman để viết test manual

  1. Tạo folder tương ứng với tên model bằng cách bấm dấu "+" và chọn "Blank Collection".

    image

  2. Tạo folder con tương ứng với 1 endpoint = cách nhấn nút "。。。" của folder model / hoặc chuột phải vào, chọn add folder.

    image

  3. Tạo request tương tự như tạo folder, bấm "Create request" thay vì "Create folder".

Ví dụ mẫu thì có thể kham khải ở Booking/New Booking/"Booking at slot 1" trong postman.

** Nhớ ctrl+s mỗi lần thay đổi, không thì duplicate hoặc tắt mở lại thì postman sẽ quay về bản save gần nhất.

** Cài thêm postman agent để postman nhận được link localhost .

Nếu như không có workspace như ở dưới thì check lại mail postman hoặc yêu cầu Toàn để đc nhận mail mời vào workspace

image