2013-06-17 27 views
5

FluentValidationを使用してサーバー側の検証を行っています。今、私が持っていた、それはしなければならないの検証をする前に、関数を呼び出す:FluentValidationで複数のパラメータを持つ関数を呼び出す

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

を今、働くことvalidateProfileがかかる唯一のパラメータがのUserProfileですので。それはすべて良いです。

私の問題は、今私は2つのパラメータを持つ関数を持ってしようとしていますということです検証私が検証のために使用しようとしていますdata.The機能は以下のようになります。今

bool IsValid(string promocode, IUserProfile userProfile) 

、私はわかりませんIsValidをfluentValidationにバインドする方法何か案は?

答えて

10

プロンプトコードはどこから来ますか?しなければならないメソッドはpromocodeが検証されているオブジェクトのプロパティである場合、

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

のようなものを渡すことは簡単だろうのFunc、のFunc、とのFunc

を受け入れるオーバーロードはありがとうございました。はい、プロポコードは、検証されるオブジェクトのプロパティです。また、私はpromocodeエラーとしてエラーを表示したいので、あなたが投稿したコードに少し変更を加えました。しかし、送信するものは基本的にうまくいきます。ここに私の変更されたコードRuleFor(x => x.PromoCode).Must((o、promocode)=> IsValid(promocode、o.UserProfile)); – TeaLeave

関連する問題