I'm trying to create a validation rule whereby I can pass in two parameters into a method called by Must()
My models;
public class Make
{
public int MakeId { get; set; }
public string Name { get; set; }
public Car[] Cars { get; set; }
}
public class Car
{
public int CarId { get; set; }
public string Name { get; set; }
}
Validator
public class MakeValidator : AbstractValidator<Make>
{
public MakeValidator()
{
When(car => car.Cars != null && car.Cars.Any(), () =>
{
RuleFor(car => car.Car)
.Must(car => ValidateCar(car.CarId, MakeId)
.WithMessage("Invalid Car");
});
}
public bool ValidateCar(Car[] Cars, int makeId)
{
foreach (var car in Cars)
{
// *** internal logic ***
}
return true;
}
}