ICommandResultBase ValidateUserName(string username, UserNameOptions options) { var result = new CommandResultBase(); if (username == null) { return(result.Failed("The username is null")); } var friendlyBlackList = BuildFriendlyBlackList(options.BlackListedCharacters.ToArray()); if (string.IsNullOrWhiteSpace(username) || username.Length < options.RequiredLength) { result.Failed($"The username must be at least {options.RequiredLength} characters in length"); } foreach (var character in options.BlackListedCharacters) { if (username.IndexOf(character) >= 0) { result.Failed($"The username cannot contain {friendlyBlackList} characters"); } } return(result.Errors.Any() ? result.Failed() : result.Success()); }
public UserNameValidator() { // TODO: Update error to reflect condifured UserNameOptions var options = new UserNameOptions(); ErrorMessage = BuildError(options); }
string BuildError(UserNameOptions options) { var sb = new StringBuilder(); var friendlyBlackList = BuildFriendlyBlackList(options.BlackListedCharacters.ToArray()); sb.Append("The {0} field cannot contain ") .Append(friendlyBlackList); if (options.RequiredLength > 0) { sb.Append(" and must be at least ") .Append(options.RequiredLength) .Append(" characters in length"); } return(sb.ToString()); }