예제 #1
0
        public ValidationResultList Validate(ValidationOptions options)
        {
            var list = new ValidationResultList();

            foreach (var form in Steps.Select(s => s.Form))
            {
                var validationResult = form.Validate(new ValidationOptions
                {
                    ValidateFiles   = options.ValidateFiles,
                    ValidateCaptcha = false
                });

                list.AddRange(validationResult);
            }

            if (options.ValidateCaptcha && RequiresCaptcha)
            {
                var requiresCaptchaAttr = new RequiresCaptchaAttribute();
                var form = new HttpContextWrapper(HttpContext.Current);

                requiresCaptchaAttr.Validate(form, list);
            }

            return(list);
        }
예제 #2
0
        public void AddValidationResults(IEnumerable <ICommandValidationResult> validationResults)
        {
            if (validationResults == null)
            {
                return;
            }

            ValidationResultList.AddRange(validationResults);
        }
예제 #3
0
        public ValidationResultList Validate(ValidationOptions options)
        {
            var validationList = new ValidationResultList();

            if (SubmittedValues == null || SubmittedValues.AllKeys.Length == 0)
            {
                return(validationList);
            }

            if (Model.OnValidateHandler != null)
            {
                var e = new FormValidationEventArgs(SubmittedValues);

                Model.OnValidateHandler(this, e);

                if (e.Cancel)
                {
                    return(validationList);
                }
            }

            EnsureRulesList();

            foreach (var kvp in _ruleList)
            {
                if (!options.ValidateFiles)
                {
                    var valueType = kvp.Key.ValueType;

                    if (valueType == typeof(FormFile) || valueType == typeof(IEnumerable <FormFile>))
                    {
                        continue;
                    }
                }

                var result = ValidationResultList.GetFormValidationResult(kvp.Value, false);

                validationList.AddRange(result);
            }

            if (options.ValidateCaptcha)
            {
                var requiresCaptchaAttr = Attributes.OfType <RequiresCaptchaAttribute>().SingleOrDefault();
                if (requiresCaptchaAttr != null)
                {
                    var form = new HttpContextWrapper(HttpContext.Current);

                    requiresCaptchaAttr.Validate(form, validationList);
                }
            }

            return(validationList);
        }