public AuthenticationStatus CreateUser(string emailAddress, string firstName, string lastName, string password) { emailAddress = emailAddress?.ToLowerInvariant(); Log.WriteLine($"Creating new user '{emailAddress}'..."); if (String.IsNullOrWhiteSpace(firstName)) { Log.WriteLine($"Creating new user '{emailAddress} FAILED => No first name"); return(AuthenticationStatus.EmptyFirstName); } else if (String.IsNullOrWhiteSpace(lastName)) { Log.WriteLine($"Creating new user '{emailAddress} FAILED => No last name"); return(AuthenticationStatus.EmptyLastName); } else if (!Validation.IsValidEmailAddress(emailAddress)) { Log.WriteLine($"Creating new user '{emailAddress} FAILED => Invalid email address"); return(AuthenticationStatus.InvalidEmailAddress); } else if (!Validation.ValidatePassword(password)) { Log.WriteLine($"Creating new user '{emailAddress} FAILED => Invalid password"); return(AuthenticationStatus.InvalidPassword); } else if (UserAccountRepository.DoesUserExist(emailAddress)) { Log.WriteLine($"Creating new user '{emailAddress} FAILED => User already exists"); return(AuthenticationStatus.UserAlreadyExists); } Log.WriteLine($"Creating new user '{emailAddress} SUCCESS!"); var user = new PrivateUserAccount(firstName, lastName, emailAddress, password); return(UserAccountRepository.AddUserAccount(user)); }
internal static AuthenticationStatus AddUserAccount(PrivateUserAccount user) { if (DoesUserExist(user.EmailAddress)) { return(AuthenticationStatus.UserAlreadyExists); } _repository.Add(user.EmailAddress.ToLowerInvariant(), user); return(AuthenticationStatus.Success); }