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));
        }
Пример #2
0
        internal static AuthenticationStatus AddUserAccount(PrivateUserAccount user)
        {
            if (DoesUserExist(user.EmailAddress))
            {
                return(AuthenticationStatus.UserAlreadyExists);
            }

            _repository.Add(user.EmailAddress.ToLowerInvariant(), user);

            return(AuthenticationStatus.Success);
        }