Example #1
0
    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());
    }
Example #2
0
            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;
                }));
            }
Example #3
0
 /// <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);
 }
Example #4
0
 /// <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);
 }
Example #5
0
 /// <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);
        }
Example #7
0
 /// <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);
 }
Example #8
0
 /// <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);
 }
Example #9
0
 /// <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);
 }
Example #10
0
 /// <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);
 }
Example #11
0
 /// <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);
 }
Example #12
0
 /// <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;
 }