我正在使用FluentValidator来验证一块CAR的有效性。 有些数值变量有时应该大于0,何时? 在数据库中,那种作品的行有一些值。
我希望CarItem类尽可能简单。理想情况下,它将是具有IsValid属性的POCO。
我认为我应该对POCO进行某种存储库注入以获取验证器规则的问题。 你为此建议给我什么样的设计模式? 我不太喜欢需要向实体注入存储库,因为它变得复杂了....
public class CarPiece //this tries to be a POCO!!
{
public double HP{ get; set; }
public double EngineConsumtion{ get; set; }
public bool IsValid {
get
{
CarPieceValidator carpieceValidator = new CarPieceValidator();
ValidationResult results = carpieceValidator .Validate(this);
return results.IsValid;
}
}
public List<string> ValidationErrors
{
get
{
CarPieceValidator carpieceValidator = new CarPieceValidator ();
ValidationResult results = carpieceValidator .Validate(this);
return results.Errors.Select(x => x.ErrorCode +" "+ x.ErrorMessage ).ToList();
}
}
public class CarPieceValidator : AbstractValidator<CarPiece>
{
public CSOItemSupplierValidator(IRepository repository)
{
foreach(IConfig configuration in repository.Configurations)
{
RuleFor(item => item.HP).LessThanOrEqualTo(configuration.MaxHp).When(item.Id= configuration==id) ;
}
}
}