Пример #1
0
        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)));
        }