public Task <IdentityResult> ValidateAsync(string item) { _password = item; try { // Setup Chain of Responsibiity IValidatorNode passwordValidator = SetupValidatorSequence(); if (!passwordValidator.Validate(this)) { return(Task.FromResult <IdentityResult>(IdentityResult.Failed(errors.ToArray()))); } } catch (Exception) { throw; } return(Task.FromResult <IdentityResult>(IdentityResult.Success)); }
public IValidatorNode SetupValidatorSequence() { IValidatorNode rootNode = null; try { IValidatorNode node = new RequirePassword(); rootNode = node; if (RequireLowercase) { node = node.SetNextNode(new RequireLowerCaseValidator()); } if (RequireDigit) { node = node.SetNextNode(new RequireDigitValidator()); } if (RequiredLength > 0) { node = node.SetNextNode(new RequiredLengthValidator()); } if (RequireNonLetterOrDigit) { node = node.SetNextNode(new RequireNonLetterorDigitValidator()); } if (RequireLowercase) { node = node.SetNextNode(new RequireLowerCaseValidator()); } if (RequireUppercase) { node = node.SetNextNode(new RequireUpperCaseValidator()); } return(rootNode); } catch (Exception) { throw; } }
public IValidatorNode SetNextNode(IValidatorNode node) { this.nextValidator = node; return(node); }