private static IEnumerable <IValidatorsFactory> Factories(IValidatorsFactory?factory)
        {
            var result = Enumerable.Repeat(Factory, 1);

            if (factory != null)
            {
                result = result.Union(Enumerable.Repeat(factory, 1));
            }

            return(result);
        }
        public static Task ValidateAsync(this IField field, object?value, IList <string> errors,
                                         Schema?schema              = null,
                                         ValidationMode mode        = ValidationMode.Default,
                                         ValidationUpdater?updater  = null,
                                         IValidatorsFactory?factory = null,
                                         ValidationAction action    = ValidationAction.Upsert)
        {
            var context = CreateContext(schema, mode, updater, action);

            var validator = new ValidatorBuilder(factory, context).ValueValidator(field);

            return(validator.ValidateAsync(value, context, CreateFormatter(errors)));
        }
示例#3
0
        public static Task ValidateAsync(this IField field, object?value, IList <string> errors,
                                         Schema?schema              = null,
                                         ValidationMode mode        = ValidationMode.Default,
                                         ValidationUpdater?updater  = null,
                                         IValidatorsFactory?factory = null)
        {
            var context = CreateContext(schema, mode, updater);

            var validators = Factories(factory).SelectMany(x => x.CreateValueValidators(context, field, null !)).ToArray();

            return(new FieldValidator(validators, field)
                   .ValidateAsync(value, context, CreateFormatter(errors)));
        }
示例#4
0
        public static async Task ValidateAsync(this NamedContentData data, PartitionResolver partitionResolver, IList <ValidationError> errors,
                                               Schema?schema              = null,
                                               ValidationMode mode        = ValidationMode.Default,
                                               ValidationUpdater?updater  = null,
                                               IValidatorsFactory?factory = null)
        {
            var context = CreateContext(schema, mode, updater);

            var validator = new ContentValidator(partitionResolver, context, Factories(factory), Log);

            await validator.ValidateInputAsync(data);

            foreach (var error in validator.Errors)
            {
                errors.Add(error);
            }
        }
        public static async Task ValidateAsync(this ContentData data, PartitionResolver partitionResolver, IList <ValidationError> errors,
                                               Schema?schema              = null,
                                               ValidationMode mode        = ValidationMode.Default,
                                               ValidationUpdater?updater  = null,
                                               IValidatorsFactory?factory = null,
                                               ValidationAction action    = ValidationAction.Upsert)
        {
            var context = CreateContext(schema, mode, updater, action);

            var validator = new ValidatorBuilder(factory, context).ContentValidator(partitionResolver);

            await validator.ValidateInputAsync(data);

            foreach (var error in validator.Errors)
            {
                errors.Add(error);
            }
        }
示例#6
0
 public ValidatorBuilder(IValidatorsFactory?validatorFactory, ValidationContext validationContext)
 {
     this.validatorFactory  = validatorFactory;
     this.validationContext = validationContext;
 }