Skip to content

quocduong/Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASP.NET ZERO TEMPLATES

Hướng dẫn cài đặt ứng dụng mới theo kiến trúc của template

  • Tài liệu hướng dẫn chi tiết: \pc01\CODE_STYLE\1.Docs\1.TSD_Docs\2.PhatTrienSanPham\Tài liệu Khởi tạo ứng dụng web.docx

Hướng dẫn sử dụng code template.

Bundle code

Bundle and watch js: Open terminal thứ 1 tại folder [Project]/src/...Web.Mvc

npm run create-bundles

Watch scss: Open terminal thứ 2 tại folder [Project]/src/...Web.Mvc

npm run watch-scss

Font End

Import Common TagHelper: Mở file Web.Mvc\Areas\App\Views_ViewImports.cshtml Thêm "@addTagHelper *, TSD.UI.Components"

# Mẫu Phiên bản Mô tả Files
1 Datatable
1.1 Cơ bản Lọc theo điều kiện, Sắp xếp, phân trang
  1. TSD.Account.Web.Mvc\Areas\App\Controllers\ListingBasicController.cs
  2. TSD.Account.Web.Mvc\wwwroot\view-resources\Areas\App\Views\ListingBasic\Index.js
    1.2 Chọn nhiều phần tử
    • Gồm các lựa chọn của phiên bản Cơ bản
    • Hiển thị checkbox ở mỗi dòng để thao tác cùng lúc nhiều dòng
    1. TSD.Account.Web.Mvc\Areas\App\Controllers\ListingBasicController.cs
    2. TSD.Account.Web.Mvc\wwwroot\view-resources\Areas\App\Views\ListingBasic\Index.js

      Datatable Configurations/Options

      # Cấu hình Giá trị Diễn giải
      1. app.datatableHelper.columnViewDetailDef() Hiển thị cột có chứa icon view details
      2. app.datatableHelper.columnOrderDef() Hiển thị cột số thứ tự (01, 02, 03, ... , 10, 11)
      3. app.datatableHelper.createRowCallbackIndexTable() Click trên từng row để hiển thị popup edit, click view details icon để hiển thị popup details
      4. searchColumn: 'text'
      1. text
      2. compareNumber
      Hiển thị cho phép tìm kiếm nội dung cột theo dữ liệu dạng text
      5. visibleConfig: true
      1. true
      2. false
      Cho phép chọn để cấu hình cột hiển thị
      6. Hiển thị danh sách các rows con

      Back End

      App Service

      # Phương thức Điều kiện Hành động Tham khảo
      1 GetAll Bình thường kế thừa PagedAndSortedResultRequestDto CustomerGroupsAppService.cs
      1.1 Tìm kiếm inline Kế thừa GridFilterColumnsModel CustomersAppService.cs
      2 CreateOrEdit CustomersAppService.cs
      2.1 Gửi data có HTML HtmlStringUtilities.HtmlSanitizeData(input);
      2.2 Tạo xác thực dữ liệu đầu vào CustomerValidator
      2.3 Tạo mã tự sinh CodeGeneratorAsync
      3 DeleteMultiple
      4 Xóa nhiều records cùng lúc BulkDeleteAsync CustomersAppService.cs

      Tính nhất quán (Tham khảo CustomersAppService.cs)

      1. Thông báo trả về client: Sử dụng tên của tính năng cho các thông báo, ví dụ: ("Customer")
        return ResponseModel.Successed(L("Common_DeleteObject_Successfully_Message", L("Customer").ToLower()));
      2. Linq: Sử dụng phương thức EF.Functions.Like thay vì Contains khi cần so sánh dữ liệu dạng chuỗi
      3. Hiệu năng
        3.1. Thêm ConfigureAwait(false) vào cuối của các hàm bất đồng bộ
        FirstOrDefaultAsync().ConfigureAwait(false)
        3.2. Gọi hàm AsNoTracking() khi lấy dữ liệu từ database mà không cần phải theo dõi dữ liệu đó có cập nhật trạng thái hay không
        _wardRepository.GetAll().AsNoTracking()

      Most Recent Release

      # Status Release Date Change Logs
      5.1 ✔️   RELEASED 2025-10-30 User activity warning

      Current Milestone

      # Feature Status Due Date
      5.2 User activity warning 🚧   In Progress 2025-10-30

      User activity warning

      Cài đặt này cho phép user nhận cảnh báo tới email, SMS khi đăng nhập trên thiết bị lạ lần đầu tiên.
      Có tùy chọn gửi mã xác thực (06 số) tới Email, SMS của user để xác thực. Sau khi xác thực xong thì khi đăng nhập lại bằng thiết bị này thì sẽ không cảnh báo nữa.
      Để user có thể kích hoạt tính năng này thì yêu cầu tài khoản HOST phải bật cấu hình này lên trước.

      1. Bật cấu hình chung trong HostSettings

      Truy cập vào quản trị với tài khoản host/123qwe
      Vào Quản trị → cài đặt → tab "Bảo mật" và kéo xuống dưới cùng
      Kéo xuống dưới phần "Cảnh báo đăng nhập" sẽ có 2 tùy chọn

      • Gửi cảnh báo tới người dùng khi tài khoản đăng nhập trên thiết bị lạ: Tùy chọn này sẽ gửi cảnh báo tới người dùng qua email hoặc/và SMS tùy cấu hình của user
      • Yêu cầu gửi mã xác thưc tới thiết bị mới: Tùy chọn này sẽ gửi mã kích hoạt tới email hoặc/và SMS mà user đã đăng ký, sau đó nhập 6 số này để trust thiết bị.
        Lưu ý: Nếu user đã chọn tại 1 thời điểm chỉ đăng nhập trên 1 thiết bị thì tùy chọn này không có giá trị.
      1. Bật cấu hình cho mỗi user

      User có thể chủ động bật, tắt cấu hình nhận cảnh báo
      Có 2 nơi để bật, tắt cấu hình cho mỗi user
      Với quyền quản trị thì truy cập vào mục quản lý người dùng, sau đó mở tab Cài đặt cảnh báo khi đăng nhập
      Với quyền user thông thường thì truy cập vào profile, chọn Cài đặt của tôi, sau đó mở tab Cài đặt cảnh báo khi đăng nhập

      1. Yêu cầu kĩ thuật

      Thông tin thiết bị sẽ được thu thập khi người dùng thực hiện thao tác login
      Hệ thống sẽ kiểm tra User-Agent và Ip Address để tạo thành 1 mã băm (Dùng SHA256) duy nhất cho thiết bị đó nhằm trust thiết bị cho các lần sau.
      Mã xác thực sẽ tồn tại trong 15 phút nhưng người dùng chỉ có 60 giây để nhập.
      Với các mã xác thực không được sử dụng thì hệ thống sẽ tự động quét 1 giờ 1 lần để xóa trong database

      1. Thông tin template

      Cấu hình Host (HostSettingsAppService.cs): Tìm hàm GetNotificationSecuritySettingsAsync, UpdateNotificationUnknowDeviceLoginAsync và các constants tương ứng.
      Cấu hình App (AppSettingProvider.cs): Hàm GetHostSettings line 127 - 134, hàm GetSharedSettings line 201 - 209.
      Entity: UserDevice và DeviceVerificationCode
      Nghiệp vụ (DeviceAlertAppService.cs): Tất cả nghiệp vụ xử lý ở đây.
      Background job (ExpiredCodesCleanupWorker.cs): Thực hiện xóa mã xác thực không sử dụng nữa.
      UI: Tất cả nằm trong folder Account và Profile

      About

      No description, website, or topics provided.

      Resources

      Stars

      Watchers

      Forks

      Releases

      No releases published

      Packages

       
       
       

      Contributors