/// <summary> /// Checks whether given password satisfies the rule /// </summary> /// <param name="mode">Mode of password rule validation</param> /// <returns>True if password satisfies the rule, false otherwise</returns> public bool IsValid(PasswordRuleMode mode = PasswordRuleMode.LetterCount) { return(mode switch { PasswordRuleMode.LetterCount => IsValidLetterCount(), PasswordRuleMode.PositionEquality => IsValidPositionEquality(), _ => throw new ArgumentException(nameof(mode)) });
/// <summary> /// Returns the number of valid passwords /// </summary> /// <param name="mode">Mode of password rule validation</param> /// <returns>Number of valid passwords</returns> public int ValidCount(PasswordRuleMode mode = PasswordRuleMode.LetterCount) { return(PasswordValidations.Count(v => v.IsValid(mode))); }