コード例 #1
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
            {
                if (Required)
                {
                    return(new FaultValidationResult(new RequiredValidationFault(validationContext.MemberName)));
                }
                else
                {
                    return(ValidationResult.Success);
                }
            }

            var ret  = new FaultValidationResult();
            int size = value.ToString().Length;

            if (MinimumLength > size || size > MaximumLength)
            {
                ret.fault.Add(new LengthValidationFault(validationContext.MemberName, MinimumLength, MaximumLength));
            }

            string s = value.ToString();



            return(ret.fault.Count != 0 ? ret : ValidationResult.Success);
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
            {
                if (Required)
                {
                    return(new FaultValidationResult(new RequiredValidationFault(validationContext.MemberName)));
                }
                else
                {
                    return(ValidationResult.Success);
                }
            }
            var ret  = new FaultValidationResult();
            int size = value.ToString().Length;

            if (MinimumLength > size || size > MaximumLength)
            {
                ret.fault.Add(new LengthValidationFault(validationContext?.MemberName, MinimumLength, MaximumLength));
            }

            string email = value as string;

            if (ForbiddenChars != null && email.IndexOfAny(ForbiddenChars.ToCharArray()) != -1)
            {
                ret.fault.Add(new CharacterValidationFault(validationContext?.MemberName, ForbiddenChars));
            }

            try
            {
                var addr = new System.Net.Mail.MailAddress(email);

                string emailNormalized = email.ToString().Normalize(NormalizationForm.FormD);
                string addrNormalized  = addr.Address.ToString().Normalize(NormalizationForm.FormD);

                if (!emailNormalized.Equals(addrNormalized))
                {
                    ret.fault.Add(new FormatValidationFault(validationContext?.MemberName, "*****@*****.**"));
                }
            }
            catch
            {
                ret.fault.Add(new FormatValidationFault(validationContext?.MemberName, "*****@*****.**"));
            }

            if (Unicode != true)
            {
                //ASCII max 127
                string s = value as string;
                if (s.Any(c => c > 127))
                {
                    ret.fault.Add(new UnicodeValidationFault(validationContext?.MemberName));
                }
            }

            return(ret.fault.Count != 0 ? ret : ValidationResult.Success);
        }
コード例 #3
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
            {
                if (Required)
                {
                    return(new FaultValidationResult(new RequiredValidationFault(validationContext.MemberName)));
                }
                else
                {
                    return(ValidationResult.Success);
                }
            }
            var ret  = new FaultValidationResult();
            int size = value.ToString().Length;

            if (MinimumLength > size || size > MaximumLength)
            {
                ret.fault.Add(new LengthValidationFault(validationContext.MemberName, MinimumLength, MaximumLength));
            }
            string s = value.ToString();

            if (ForbiddenChars != null && s.IndexOfAny(ForbiddenChars.ToCharArray()) != -1)
            {
                ret.fault.Add(new CharacterValidationFault(validationContext.MemberName, ForbiddenChars));
            }
            if (MatchRegexp != null)
            {
                Regex re = new Regex(MatchRegexp);
                if (!re.Match(s).Success)
                {
                    if (PasswordCheck == true)
                    {
                        // The password must contain three of the following:
                        //      English uppercase characters (A through Z)
                        //      English lowercase characters (a through z)
                        //      numerals (0 through 9)
                        //      non-alphabetic characters (such as !, $, #, %)
                        ret.fault.Add(new FormatValidationFault(validationContext.MemberName, "Password must be at least 8 characters and contain characters from at least 3 of the following groups: uppercase, lowercase, numerals, or symbols."));
                    }
                    else
                    {
                        ret.fault.Add(new FormatValidationFault(validationContext.MemberName, MatchRegexp));
                    }
                }
            }
            if (Unicode != true)
            {
                //ASCII max 127
                if (s.Any(c => c > 127))
                {
                    ret.fault.Add(new UnicodeValidationFault(validationContext.MemberName));
                }
            }
            return(ret.fault.Count != 0 ? ret : ValidationResult.Success);
        }
コード例 #4
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var ret  = new FaultValidationResult();
            int size = value != null?value.ToString().Length : 0;

            bool isHpProduct = true;

            PropertyInfo propertyName = validationContext.ObjectType.GetProperty(HpProductFieldName);

            if (propertyName != null)
            {
                isHpProduct   = (bool)propertyName.GetValue(validationContext.ObjectInstance, null);
                MaximumLength = maxHpPlCodeLength;
            }

            if (!isHpProduct)
            {
                MaximumLength = maxNonHpPlCodeLength;
            }

            return(base.IsValid(value, validationContext));
        }
コード例 #5
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
            {
                return(Required ? new FaultValidationResult(new RequiredValidationFault(validationContext.MemberName)) : ValidationResult.Success);
            }

            string sValue = value.ToString();

            // compare the length
            if (sValue.Length > this.MaximumLength)
            {
                return(new FaultValidationResult(new LengthValidationFault(validationContext.MemberName, 0, MaximumLength)));
            }

            // format should be "x.x.x.x"
            string[] words = sValue.Split('.');
            if (words.Count() != 4)
            {
                return(new FaultValidationResult(new FormatValidationFault(validationContext.MemberName, "N.N.N.N")));
            }

            try
            {
                foreach (string w in words)
                {
                    Int32.Parse(w);
                }
            }
            catch (FormatException)
            {
                return(new FaultValidationResult(new FormatValidationFault(validationContext.MemberName, "N.N.N.N")));
            }

            bool isWin10 = ((int)OS.Windows10 == Int32.Parse(words[0])) ? true : false;

            Type[] types = new Type[]
            {
                typeof(OS),
                typeof(OSEdition),
                typeof(OSArchitecture),
                typeof(OSServicePack)
            };

            int i = 0;

            FaultValidationResult faultResult = new FaultValidationResult();

            foreach (Type type in types)
            {
                if (type == typeof(OSServicePack) && isWin10)
                {
                    // do not validate ServicePack for win10
                    continue;
                }
                if (Enum.GetName(type, Int32.Parse(words[i])) == null)
                {
                    faultResult.fault.Add(new EnumValidationFault(validationContext.MemberName + "." + type.Name, string.Join(", ", type.GetEnumNames().Zip((int[])type.GetEnumValues(), (x, y) => x + " - " + y))));
                }
                i++;
            }

            if (faultResult.fault.Count > 0)
            {
                return(faultResult);
            }

            return(ValidationResult.Success);
        }