Остановить проверку текучести при первом сбое
я определяю проверку для моих объектов запроса. Я бы хотел, чтобы валидатор остановился на самом первом сбое, а не только на той же цепочке. В приведенном ниже примере, если мойTechnicalHeader
объект равен нулю, я получаю исключение NullReference, когда проверка достигает правила дляTechnicalHeader.MCUserid
.
В плохих словах, я хотел бы сделать условную проверку по последним трем правилам в коде ниже, в соответствии с результатом первого правила
using System;
using ServiceStack.FluentValidation;
using MyProj.Services.Models;
namespace MyProj.Services.BaseService.Validators
{
public class BaseValidator<T> : AbstractValidator<T>
where T : RequestBase
{
public BaseValidator()
{
RuleSet(ServiceStack.ApplyTo.Put | ServiceStack.ApplyTo.Post,
() =>
{
this.CascadeMode = CascadeMode.StopOnFirstFailure;
RuleFor(x => x.TechnicalHeader).Cascade(CascadeMode.StopOnFirstFailure).NotNull().WithMessage("Header cannot be null");
RuleFor(x => x.TechnicalHeader).NotEmpty().WithMessage("Header cannot be null");
RuleFor(x => x.TechnicalHeader.Userid).NotEmpty().WithMessage("Userid cannot be null or an empty string");
RuleFor(x => x.TechnicalHeader.CabCode).GreaterThan(0).WithMessage("CabCode cannot be or less than 0");
RuleFor(x => x.TechnicalHeader.Ndg).NotEmpty().WithMessage("Ndg cannot be null or an empty string");
}
);
}
}
}