Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FluentValidation rule for multiple properties

I have a FluentValidator that has multiple properties like zip and county etc. I want to create a rule that takes two properties just like a RuleFor construct

public class FooArgs {     public string Zip { get; set; }     public System.Guid CountyId { get; set; } }  public class FooValidator : AbstractValidator<FooArgs> {     RuleFor(m => m.CountyId).Must(ValidZipCounty).WithMessage("wrong Zip County"); } 

This works but I want to pass both Zip and county to the rue in order to validate. What is the best method to achieve this?

like image 946
Sofia Khwaja Avatar asked Dec 11 '13 20:12

Sofia Khwaja


Video Answer


1 Answers

There is a Must overload that also provides you with the FooArgs object documented here. It allows you to easily pass both arguments into your method like this:

RuleFor(m => m.CountyId).Must((fooArgs, countyId) =>     ValidZipCounty(fooArgs.Zip, countyId))     .WithMessage("wrong Zip County"); 
like image 119
bpruitt-goddard Avatar answered Oct 17 '22 18:10

bpruitt-goddard