2013-06-17 34 views
5

Tôi đang sử dụng FluentValidation để xác thực phía máy chủ. Bây giờ tôi đã có nó gọi một chức năng trước khi phải xác nhận:Yêu cầu FluentValidation gọi hàm có nhiều tham số

RuleFor(x => x.UserProfile).Must(ValidateProfile).WithMessage("We are sorry, you have already logged on " + DateTime.Now + ". Please come again tomorrow."); 

Bây giờ, điều đó hoạt động vì tham số duy nhất hợp lệProfile mất là UserProfile. tất cả đều tốt.

Vấn đề của tôi bây giờ là tôi đang cố gắng để có một hàm với hai tham số xác nhận các chức năng data.The mà tôi đang cố gắng sử dụng để xác nhận trông giống như dưới đây:

bool IsValid(string promocode, IUserProfile userProfile) 

Bây giờ, tôi không chắc chắn cách liên kết IsValid với fluentValidation. Bất kỳ ý tưởng?

Trả lời

10

Mã khuyến mại đến từ đâu? Phương pháp Phải có quá tải chấp nhận Func, Func, và Func

Nếu mã khuyến mại là một thuộc tính của đối tượng được xác nhận, nó sẽ được dễ dàng để vượt qua một cái gì đó giống như

.RuleFor(x => x.UserProfile).Must((o, userProfile) => { return IsValid(o.promoCode, userProfile); }) 
+0

Cảm ơn bạn rất nhiều. Có, mã khuyến mại là thuộc tính của đối tượng đang được xác thực. và tôi cũng muốn hiển thị lỗi dưới dạng lỗi mã khuyến mại vì vậy tôi đã thực hiện một thay đổi nhỏ trong mã mà bạn đã đăng.Nhưng những gì bạn gửi về cơ bản hoạt động tốt. đây là mã thay đổi của tôi RuleFor (x => x.PromoCode) .Must ((o, promocode) => IsValid (promocode, o.UserProfile)); – TeaLeave

Các vấn đề liên quan