Câu hỏi này là về việc áp dụng các quy tắc của ứng dụng của tôi làm tôi bối rối.
Bộ điều khiển của tôi đang sử dụng dịch vụ và dịch vụ đang sử dụng kho lưu trữ.
public class CommentController: ApiController{
[HttpPost]
public bool EditComment(Comment comment){
commentService.Update(comment);
}
}
public class CommentService{
ICommentRepository repository;
....
....
public void Update(Comment comment){
repository.Update(comment);
}
}
Nếu người dùng được xác thực, anh ta có thể cập nhật một bình luận.
Nhưng một người dùng nên chỉnh sửa ý kiến riêng.
Nhưng một quản trị viên có thể chỉnh sửa tất cả các ý kiến.
Nhưng bình luận không thể chỉnh sửa sau một ngày cụ thể.
Chỉnh sửa bởi một bộ phận
Và tôi có một cái gì đó giống như các quy tắc này.
Nếu tôi áp dụng quy tắc "bình luận riêng của người dùng chỉnh sửa" trong lớp dịch vụ, tôi sẽ thay đổi Cập nhật methot và truyền tham số của bộ điều khiển User.Identity.Name,
public class CommentService{
ICommentRepository repository;
....
....
public void Update(string updatedByThisUser, Comment comment){
// if updatedByThisUser is owner of comment
repository.Update(comment);
}
}
Nhưng, có đúng là thay đổi hoạt động dịch vụ theo quy tắc?
Tôi bối rối một chút về nơi tôi có thể áp dụng các quy tắc. Trong bộ điều khiển hoặc trong dịch vụ hoặc trong kho lưu trữ.
Có cách nào nổi bật để làm điều này như các mẫu thiết kế.
[Authorize(Roles="member, admin")]
và bây giờ tất cả các phương thức hành động trong Trình điều khiển sẽ chỉ có thể được truy cập bởi người dùng trong vai trò "thành viên" hoặc "quản trị viên".