Beispiel #1
0
 public Task <IEnumerable <ValidationFailure> > ValidateAsync(PropertyValidatorContext context)
 {
     if (condition(context.Instance))
     {
         return(InnerValidator.ValidateAsync(context));
     }
     return(TaskHelpers.FromResult(Enumerable.Empty <ValidationFailure>()));
 }
        public Task <IEnumerable <ValidationFailure> > ValidateAsync(PropertyValidatorContext context, CancellationToken cancellation)
        {
            if (!condition(context.Instance))
            {
                return(TaskHelpers.FromResult(Enumerable.Empty <ValidationFailure>()));
            }

            if (asyncCondition == null)
            {
                return(InnerValidator.ValidateAsync(context, cancellation));
            }

            return(asyncCondition(context.Instance)
                   .Then(shouldValidate =>
                         shouldValidate
                                                ? InnerValidator.ValidateAsync(context, cancellation)
                                                : TaskHelpers.FromResult(Enumerable.Empty <ValidationFailure>()),
                         runSynchronously: true));
        }
        public async Task <IEnumerable <ValidationFailure> > ValidateAsync(PropertyValidatorContext context, CancellationToken cancellation)
        {
            if (!condition(context.Instance))
            {
                return(Enumerable.Empty <ValidationFailure>());
            }

            if (asyncCondition == null)
            {
                return(await InnerValidator.ValidateAsync(context, cancellation));
            }

            bool shouldValidate = await asyncCondition(context.Instance);

            if (shouldValidate)
            {
                return(await InnerValidator.ValidateAsync(context, cancellation));
            }

            return(Enumerable.Empty <ValidationFailure>());
        }