private PasswordLevel CreateIfNotExistsOrGet(PasswordLevels level) { var name = Enum.GetName(typeof(PasswordLevels), level); var passwordLevel = Repository.GetSet <PasswordLevel>().FirstOrDefault(p => p.Name.ToLower().Equals(name.ToLower())); if (passwordLevel == null) { passwordLevel = new PasswordLevel(); passwordLevel.Name = name; Repository.Add(passwordLevel); } return(passwordLevel); }
public bool IsStrongEnough(string password, PasswordLevels level) { if (password == null) { throw new ArgumentNullException(); } var levelBits = (level == PasswordLevels.WEAK ? 1 : 0) | (level == PasswordLevels.MEDIUM ? 3 : 0) | (level == PasswordLevels.STRONG ? 7 : 0); return (!password.Any(c => char.IsWhiteSpace(c)) && ((levelBits & 1) == 0 || IsWeakEnough(password)) && ((levelBits & 2) == 0 || IsMediumEnough(password)) && ((levelBits & 4) == 0 || IsStrongEnough(password))); }