nếu có nhiều kinh nghiệm sử dụng [C#] FluentValidation và có bất kỳ ý tưởng nào cho câu hỏi dưới đây, bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.Xác nhận 2 danh sách sử dụng FluentValidation
Tôi có 2 Danh sách chung (cả với kiểu dữ liệu chuỗi) - "Tên" và "Url". Cả hai đều có cùng số lượng mục, do đó các mục được lập chỉ mục phù hợp với tên, [0] tương quan với Url [0].
Vấn đề duy nhất tôi gặp phải là xác thực các mục trống trong mỗi danh sách. Các quy tắc tôi cần là:
nếu một mục rỗng trong Tên [2] thì Url [2] không được để trống. nếu một mục trống trong Url [2] thì Tên [2] không được để trống. nếu cả hai đều trống rỗng thì chúng tôi không muốn xác thực, chúng tôi muốn bỏ qua.
lưu ý: Tôi đã sử dụng chỉ số 2 trong ví dụ trên nhưng nó có thể là bất cứ điều gì
Cho đến nay tôi có:
RuleFor(f => f.Names).Must(d => d.All(s => !String.IsNullOrEmpty(s)))
.WithMessage("Names cannot be empty.")
RuleFor(f => f.URLs).Must(urls => urls.All(s => !String.IsNullOrEmpty(s)))
.WithMessage("URLs cannot be empty.")
này kiểm tra mà không có mục nào là có sản phẩm nào trong cả hai danh sách, tuy nhiên tôi cần để có thể không xác nhận các mục để trống trong một danh sách nếu mục tương quan trong mục khác cũng trống (Nếu cả hai đều trống thì chúng ta chỉ muốn bỏ qua nó).
Bất kỳ ý tưởng nào?
Cảm ơn bạn rất nhiều vì đã đăng bài này. Tôi đã kéo tóc ra. Điều này làm việc tuyệt vời nếu bạn đang xác nhận rằng ít nhất là trên hộp kiểm đã được kiểm tra: 'RuleFor (x => x.AvailableCompanies) .Must ((f, d) => {return d.Find (h => h.Checked == true)! = null;}). WithMessage ("Vui lòng chọn ít nhất một công ty"); ' – brenjt