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