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); } }
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); } }
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); } }
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); } }
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); }