2013-06-17 8 views
5

मैं सर्वर साइड सत्यापन के लिए फ़्लुएंट सत्यापन का उपयोग कर रहा हूं। अबFluentValidation कई पैरामीटर के साथ एक फ़ंक्शन को कॉल करें

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

, कि काम करता है, क्योंकि केवल पैरामीटर कि validateProfile लेता UserProfile है: अब मैं पड़ा है यह अवश्य मान्यता के साथ से पहले एक समारोह कहते हैं। यह सब ठीक है।

मेरे समस्या अब है कि मैं दो मापदंडों के साथ एक समारोह के लिए कोशिश कर रहा हूँ मान्य data.The समारोह जो मैं सत्यापन के लिए उपयोग करने के लिए कोशिश कर रहा हूँ नीचे दिखाई देता है:

bool IsValid(string promocode, IUserProfile userProfile) 

अब, मुझे यकीन है कि नहीं कर रहा हूँ IsValid को एक धाराप्रवाह वैधता से कैसे बांधें। कोई विचार?

उत्तर

10

प्रोमोकोड कहां से आ रहा है? अवश्य विधि समारोह, समारोह, और समारोह

को स्वीकार भार के

तो प्रचारकोड वस्तु की संपत्ति सत्यापित किया जा रहा है, ऐसा लगता है

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

बहुत बहुत शुक्रिया कुछ पारित करने के लिए आसान होगा है। हां, प्रोमोकोड ऑब्जेक्ट की एक संपत्ति मान्य है। और मैं प्रोमोकोड त्रुटि के रूप में त्रुटि दिखाना चाहता था इसलिए मैंने आपके द्वारा पोस्ट किए गए कोड में मामूली परिवर्तन किया। लेकिन जो आप मूल रूप से भेजते हैं वह बहुत अच्छा काम करता है। यहां मेरा बदला कोड नियम है (x => x.PromoCode) .स्ट ((ओ, प्रोमोकोड) => IsValid (प्रोमोकोड, ओ.उसर प्रोफाइल)); – TeaLeave

संबंधित मुद्दे