Beispiel #1
0
 public IEnumerable <ICoconaParameterValidator> CreateValidators(ICommandParameterDescriptor parameter)
 {
     return(parameter
            .ParameterAttributes
            .OfType <ValidationAttribute>()
            .Select(x => new DataAnnotationsParameterValidator(x)));
 }
 public IEnumerable <ICoconaParameterValidator> CreateValidators(ICommandParameterDescriptor parameter)
 {
     foreach (var attr in parameter.ParameterAttributes)
     {
         if (attr is ValidationAttribute validationAttr)
         {
             yield return(new DataAnnotationsParameterValidator(validationAttr));
         }
     }
 }
        private object?Validate(ICommandParameterDescriptor commandParameter, object?value)
        {
            var ctx = new CoconaParameterValidationContext(commandParameter, value);

            foreach (var validator in _validatorProvider.CreateValidators(commandParameter))
            {
                var validationFailed = validator.Validate(ctx).FirstOrDefault();
                if (validationFailed != null)
                {
                    throw new ParameterBinderException(ParameterBinderResult.ValidationFailed, validationFailed.Message);
                }
            }

            return(value);
        }
 public CoconaParameterValidationContext(ICommandParameterDescriptor parameter, object?value)
 {
     Parameter = parameter ?? throw new ArgumentNullException(nameof(parameter));
     Value     = value;
 }