Beispiel #1
0
        public override void Validate(object value, GeneralControlMetadata metadata)
        {
            // validates for required
            base.Validate(value, metadata);

            FormArrayMetadata m = (FormArrayMetadata)metadata;

            if (value != null)
            {
                object[] items  = ((System.Collections.IList)value).OfType <object>().ToArray();
                int      length = items.Length;

                // 0-item array passes isRequired check; it must be enforced by minLength == 1

                if (m.minLength.HasValue)
                {
                    if (length < m.minLength.Value)
                    {
                        throw new InvalidOperationException(String.Format("The minimum length of the array is {0} and the actual is {1}.", m.minLength, length));
                    }
                }

                if (m.maxLength.HasValue)
                {
                    if (length > m.maxLength.Value)
                    {
                        throw new InvalidOperationException(String.Format("The maximum length of the array is {0} and the actual is {1}.", m.maxLength, length));
                    }
                }

                ValidateArray(items, m.itemMetadata);
            }
        }
Beispiel #2
0
        public override void Validate(object value, GeneralControlMetadata metadata)
        {
            IntegerControlMetadata m = (IntegerControlMetadata)metadata;

            if (value != null)
            {
                var i = Convert.ToInt32(value);

                if (m.min.HasValue)
                {
                    if (i < m.min.Value)
                    {
                        throw new InvalidOperationException(String.Format("The minimum value is {0} and the actual is {1}.", m.min, i));
                    }
                }

                if (m.max.HasValue)
                {
                    if (i > m.max)
                    {
                        throw new InvalidOperationException(String.Format("The maximum value is {0} and the actual is {1}.", m.max, i));
                    }
                }


                base.Validate(value, metadata);
            }
        }
Beispiel #3
0
        public static void ValidateArray(object[] items, GeneralControlMetadata itemMetadata)
        {
            Type validatorType = ControlValidatorCache.GetValidator(itemMetadata.GetType());
            IControlValidator itemValidator = (IControlValidator)Activator.CreateInstance(validatorType);

            for (int i = 0; i < items.Length; i++)
            {
                itemValidator.Validate(items[i], itemMetadata);
            }
        }
 public virtual void Validate(object value, GeneralControlMetadata metadata)
 {
     if (metadata.isRequired ?? false)
     {
         if (value == null)
         {
             throw new InvalidOperationException("The value is required but it was null.");
         }
     }
 }
        public override void Validate(object value, GeneralControlMetadata metadata)
        {
            // validates for required
            base.Validate(value, metadata);

            FormGroupMetadata m = (FormGroupMetadata)metadata;

            if (value != null)
            {
                ControlGroupValidator.Validate(value, m);
            }
        }
Beispiel #6
0
        public static void Validate(object model, IControlGroup metadata)
        {
            Tuple <string, GeneralControlMetadata>[] controls = metadata.controls.Select(x => Tuple.Create(x.Key, x.Value)).ToArray();

            Type modelType = model.GetType();

            foreach (var control in controls)
            {
                Type controlMetadataType           = control.Item2.GetType();
                Type validatorType                 = ControlValidatorCache.GetValidator(controlMetadataType);
                IControlValidator controlValidator = (IControlValidator)Activator.CreateInstance(validatorType);

                object value = modelType.GetProperty(control.Item1).GetValue(model, null);
                GeneralControlMetadata controlMetadata = control.Item2;

                controlValidator.Validate(value, controlMetadata);
            }
        }
        public override void Validate(object value, GeneralControlMetadata metadata)
        {
            StringControlMetadata m = (StringControlMetadata)metadata;

            if (value != null)
            {
                var s = value as string;

                if (s.Length < m.minLength)
                {
                    throw new InvalidOperationException(String.Format("The minimum length is {0} and the actual is {1}.", m.minLength, s.Length));
                }

                if (s.Length > m.maxLength)
                {
                    throw new InvalidOperationException(String.Format("The maximum length is {0} and the actual is {1}.", m.maxLength, s.Length));
                }
            }

            base.Validate(value, metadata);
        }
        public override void Validate(object value, GeneralControlMetadata metadata)
        {
            DecimalControlMetadata m = (DecimalControlMetadata)metadata;

            if (value != null)
            {
                var v = Convert.ToDecimal(value);

                if (m.min.HasValue)
                {
                    if (v < m.min.Value)
                    {
                        throw new InvalidOperationException(String.Format("The minimum value is {0} and the actual is {1}.", m.min, v));
                    }
                }

                if (m.max.HasValue)
                {
                    if (v > m.max.Value)
                    {
                        throw new InvalidOperationException(String.Format("The maximum value is {0} and the actual is {1}.", m.max, v));
                    }
                }


                if (m.maxDecimalDigits.HasValue)
                {
                    if (v != Decimal.Round(v, m.maxDecimalDigits.Value, MidpointRounding.AwayFromZero))
                    {
                        throw new InvalidOperationException(String.Format("The maximum number of digits after the decimal point is {0} and the actual is greater.", m.maxDecimalDigits));
                    }
                }

                base.Validate(value, metadata);
            }
        }
Beispiel #9
0
 public override void Validate(object value, GeneralControlMetadata metadata)
 {
     // this one currently does nothing, the length is tested in the string validator
     base.Validate(value, metadata);
 }