/// <summary> /// Build a requirements rules /// </summary> /// <param name="part"></param> /// <returns></returns> public RequirementsController BuildRequirements(string part) { // Initialize requirements requirements = new Objects.Requirements(); // Set part name requirements.part = part; // Return instance return(this); }
/// <summary> /// Add requirements to the list /// </summary> /// <param name="requirements">Requirement Object</param> public void AddRequirements(Objects.Requirements requirements) => RequirementsList.Add(requirements);
/// <summary> /// Check every requirements /// </summary> /// <param name="combo">Combo as user:pass</param> /// <param name="requirements">Rules</param> /// <returns>Boolean</returns> public bool CheckRequirements(string combo, Objects.Requirements requirements) { // Setting up temporary variable bool result = true; // Split the combo string user = combo.Split(':')[0]; string pass = combo.Split(':')[1]; // Define haystack string haystack; if (requirements.part == "user") { haystack = user; } else { haystack = pass; } // Foreach rules foreach (Rules req in requirements.rules.Keys) { // Check every rules switch (req) { case Rules.MinLength: result = CheckMinimumLength(haystack, int.Parse(requirements.rules[req])); break; case Rules.MaxLength: result = CheckMaximumLength(haystack, int.Parse(requirements.rules[req])); break; case Rules.MustContains: result = ContainsChar(haystack, requirements.rules[req]); break; case Rules.MustNotContains: result = !ContainsChar(haystack, requirements.rules[req]); break; case Rules.MustContainsDigit: result = ContainsDigit(haystack); break; case Rules.MustContainsLowercase: result = ContainsLowercase(haystack); break; case Rules.MustContainsUppercase: result = ContainsUppercase(haystack); break; case Rules.MustContainsSymbol: result = ContainsSymbol(haystack); break; } } // Return result return(result); }