public void SetupValidationRules(ModelValidator <ProductSpecificationModel> v)
 {
     v.RuleFor(x => x.Name).NotEmpty().When(x => x.Id == 0);
     v.RuleFor(x => x.Values).Custom((list, context) =>
     {
         if (!list.Any())
         {
             context.AddFailure(nameof(ProductSpecificationValueModel.AttributeValue), "At least one specification value must be provided");
         }
     });
     v.RuleForEach(x => x.Values)
     .Custom((model, context) =>
     {
         if (model.AttributeValue.IsNullEmptyOrWhiteSpace())
         {
             context.AddFailure(nameof(ProductSpecificationValueModel.AttributeValue), "Can't add empty values");
         }
     });
 }
 public void SetupValidationRules(ModelValidator <ProductAttributeModel> v)
 {
     v.RuleFor(x => x.Name).NotEmpty().When(x => x.Id == 0);
     //v.RuleForEach(x => x.Values).SetValidator(new ModelValidator<ProductAttributeValueModel>());
     v.RuleFor(x => x.Values).Custom((list, context) =>
     {
         var instance = context.InstanceToValidate as ProductAttributeModel;
         if (instance.InputFieldType.RequireValues() && !list.Any())
         {
             context.AddFailure(nameof(ProductAttributeValueModel.AttributeValue), "At least one attribute value must be provided");
         }
     });
     v.RuleForEach(x => x.Values)
     .Custom((model, context) =>
     {
         if (model.AttributeValue.IsNullEmptyOrWhiteSpace())
         {
             context.AddFailure(nameof(ProductAttributeValueModel.AttributeValue), "Can't add empty values");
         }
     });
 }