धाराप्रवाह सत्यापन सशर्त मान्यता का समर्थन करता है, बस द्वितीय खंड के मान की जांच करने के लिए जब क्लॉज का उपयोग करें:
https://fluentvalidation.net/start#conditions
जब / नियम के निष्पादन के समय नियंत्रित करने वाली स्थितियों को निर्दिष्ट करने के लिए कब और कब तक अनुपयोगी तरीकों के साथ एक स्थिति निर्दिष्ट की जा सकती है। उदाहरण के लिए, CustomerDiscount संपत्ति पर यह नियम केवल तभी निष्पादित होगा जब IsPreferredCustomer सत्य है:
RuleFor(customer => customer.CustomerDiscount)
.GreaterThan(0)
.When(customer => customer.IsPreferredCustomer);
जब तक कि विधि के विपरीत नहीं है।
आप एक कस्टम सत्यापनकर्ता को परिभाषित करने के लिए। NotVmpty शर्त पर संचालित होने वाले .SetValidator ऑपरेशन का उपयोग करने में भी सक्षम हो सकते हैं।
RuleFor(customer => customer.CustomerDiscount)
.GreaterThan(0)
.SetValidator(New MyCustomerDiscountValidator);
यदि आपको कई नियमों के लिए एक ही शर्त निर्दिष्ट करने की आवश्यकता है, तो आप नियम के अंत में जब कॉल कर सकते हैं, तो शीर्ष-स्तरीय कॉल विधि के बजाय कॉल कर सकते हैं:
When(customer => customer.IsPreferred, () => {
RuleFor(customer => customer.CustomerDiscount).GreaterThan(0);
RuleFor(customer => customer.CreditCardNumber).NotNull();
});
इस बार, शर्त को दोनों नियमों पर लागू किया जाएगा। आप कॉल को चैन से भी कर सकते हैं अन्यथा जो नियम से मेल खाएगा वह शर्त से मेल नहीं खाता:
When(customer => customer.IsPreferred, () => {
RuleFor(customer => customer.CustomerDiscount).GreaterThan(0);
RuleFor(customer => customer.CreditCardNumber).NotNull();
}).Otherwise(() => {
RuleFor(customer => customer.CustomerDiscount).Equal(0);
});