ValidatorInfo[] Validation(GameObject source) { List <ValidatorInfo> validatorInfos = new List <ValidatorInfo>(); MonoBehaviour[] components = source.GetComponentsInChildren <MonoBehaviour>(true); for (int i = 0; i < components.Length; i++) { Component component = components[i]; SerializedObject serializedObject = new SerializedObject(component); SerializedProperty serializedProperty = serializedObject.GetIterator(); while (serializedProperty.NextVisible(true)) { PropertyInfo info = serializedProperty.GetType().GetProperty("objectReferenceStringValue", BindingFlags.NonPublic | BindingFlags.Instance); string result = (string)info.GetValue(serializedProperty, null); if (result.Contains("None") || result.Contains("Missing")) { GameObject target = component.gameObject; string hierarchyPath = target.name; while (target.transform.parent != null) { target = target.transform.parent.gameObject; hierarchyPath = target.name + "/" + hierarchyPath; } ValidatorInfo validatorInfo = new ValidatorInfo(); validatorInfo.HierarchyPath = hierarchyPath; validatorInfo.ComponentName = component.GetType().ToString(); validatorInfo.PropertyName = serializedProperty.name; validatorInfos.Add(validatorInfo); } } } return(validatorInfos.ToArray()); }
public static ValidatorInfo[] GetOrCache(MethodBase methodBase) { return(cached.GetOrAdd(methodBase, (method) => { ValidatorInfo[] infos; var ps = method.GetParameters(); List <ValidatorInfo> lst = new List <ValidatorInfo>(ps.Length); for (int i = 0, len = ps.Length; i < len; i++) { var p = ps[i]; foreach (var attr in p.GetCustomAttributes <ParameterValidatorAttribute>(true)) { ValidatorInfo info = new ValidatorInfo(i, attr.CreateValidator(p)); lst.Add(info); } } if (lst.Count > 0) { infos = lst.ToArray(); } else { infos = null; } return infos; })); }
/// <summary> /// Value can't be empty /// </summary> /// <param name="errorMessage">Error message when value is empty</param> /// <returns>ClientValidators instance</returns> public ClientValidators Required(string errorMessage = null) { m_Validators["required"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is required") }; return(this); }
/// <summary> /// Custom validation /// </summary> /// <param name="javascriptFunction">javascript function</param> /// <returns>ClientValidators instance</returns> public ClientValidators Custom(string javascriptFunction) { m_Validators["custom"] = new ValidatorInfo() { ExtraParameter1 = javascriptFunction, }; return(this); }
/// <summary> /// Text value must be digits /// </summary> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators Digits(string errorMessage = null) { m_Validators["digits"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is invalid"), }; return(this); }
public void Can_decode_previously_encoded() { var info = new ValidatorInfo(10, 5, new[] { TestItem.AddressA, TestItem.AddressC }); var rlp = Rlp.Encode(info); var decoded = Rlp.Decode <ValidatorInfo>(rlp); decoded.Should().BeEquivalentTo(info); }
/// <summary> /// Value's length must be equal or less than the max length. /// </summary> /// <param name="maxLen">max length</param> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators MaxLength(int maxLen, string errorMessage = null) { m_Validators["maxlength"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is invalid"), ExtraParameter1 = maxLen, }; return(this); }
/// <summary> /// Value can;t be empty in some conditions /// </summary> /// <param name="callback">javascript function, returns the bool value indicates if the validator is enabled/disabled</param> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators RequiredIf(string callback, string errorMessage = null) { m_Validators["required"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is required"), ExtraParameter1 = callback, }; return(this); }
/// <summary> /// Value of this countrol must be equal to the compared control's value /// </summary> /// <param name="selector">CSS selector</param> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators EqualTo(string selector, string errorMessage = null) { m_Validators["equalTo"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is invalid"), ExtraParameter1 = selector, }; return(this); }
/// <summary> /// Numberic value must equal or greater than min value /// </summary> /// <param name="minValue">min value</param> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators Min(int minValue, string errorMessage = null) { m_Validators["min"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is invalid"), ExtraParameter1 = minValue, }; return(this); }
/// <summary> /// Validate this field via server method /// </summary> /// <param name="url">server url</param> /// <returns>ClientValidators instance</returns> public ClientValidators Server(string url) { m_Validators["server"] = new ValidatorInfo() { ExtraParameter1 = string.Format("{{ url:'{0}', type:'post'}}" , url.SafeHtmlEncode() ) }; return(this); }
/// <summary> /// Numberic value must in the range /// </summary> /// <param name="minValue">min value</param> /// <param name="maxValue">max value</param> /// <param name="errorMessage">error message</param> /// <returns>ClientValidators instance</returns> public ClientValidators Range(decimal minValue, decimal maxValue, string errorMessage = null) { m_Validators["range"] = new ValidatorInfo() { ErrorMessage = errorMessage.DefaultIfNullOrEmpty("This field is invalid"), ExtraParameter1 = minValue, ExtraParameter2 = maxValue, }; return(this); }
public int NewValidatorId(int memberId, ValidatorInfo validatorInfo) { if (_isSealed) { throw new InvalidOperationException(); } _validators.Add(new Validator(memberId, validatorInfo)); return(_validators.Count - 1); }
public ReadyConverter(ValidatorInfo validatorInfo, IValidationExpressionConverter converter) { _valdiatorInfo = validatorInfo; _converter = converter; }
public Validator(int memberId, ValidatorInfo info) { MemberId = memberId; Info = info; }