예제 #1
0
 /// <summary>
 /// 必填项验证
 /// </summary>
 /// <param name="field"></param>
 /// <param name="fieldName"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 public static bool Required(object field, string fieldName, ref ValidateResult result)
 {
     if (field == null ||
         (field is string && string.IsNullOrWhiteSpace((string)field)))
     {
         result.AddError(string.Format("{0} 不能为空", fieldName));
         return(false);
     }
     return(true);
 }
예제 #2
0
        /// <summary>
        /// 唯一性验证
        /// </summary>
        /// <param name="model"></param>
        /// <param name="fieldName"></param>
        /// <param name="CheckNameUnique">委托, 传入一个验证model是否唯一的方法</param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static bool UniqueField(object model, string fieldName, Predicate <object> CheckNameUnique, ref ValidateResult result)
        {
            if (CheckNameUnique == null)
            {
                throw new ArgumentException("CheckNameUnique委托不能为空!");
            }
            if (!CheckNameUnique(model))
            {
                result.AddError(string.Format("{0} 值已存在,不能重复 ", fieldName));
                return(false);
            }

            return(true);
        }
예제 #3
0
        /// <summary>
        /// 值范围控制验证
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="field"></param>
        /// <param name="fieldName"></param>
        /// <param name="min"></param>
        /// <param name="max"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static bool RangeControl <T>(T field, string fieldName, T min, T max, ref ValidateResult result)
            where T : IComparable
        {
            if (min.CompareTo(max) != -1)
            {
                throw new ArgumentException(string.Format("min  {0} > max  {1}", min, max));
            }


            if (field.CompareTo(max) > 0 || field.CompareTo(min) < 0)  // field > max or < min
            {
                result.AddError(string.Format("{0} 值不在范围内({1} ~ {2})", fieldName, min, max));
                return(false);
            }

            return(true);
        }
예제 #4
0
        /// <summary>
        /// string 长度控制
        /// </summary>
        /// <param name="field"></param>
        /// <param name="fieldName"></param>
        /// <param name="minLength"></param>
        /// <param name="maxLength"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static bool LengthControl(string field, string fieldName, int minLength, int maxLength, ref ValidateResult result)
        {
            if (!Required(field, fieldName, ref result))
            {
                return(false);
            }

            if (minLength >= maxLength)
            {
                throw new ArgumentException(string.Format("minLength {0} > maxLength {1}", minLength, maxLength));
            }


            int length = field.Length;

            if (length > maxLength || length < minLength)
            {
                result.AddError(string.Format("{0} 长度不在范围内({1} ~ {2})", fieldName, minLength, maxLength));
                return(false);
            }

            return(true);
        }