Esempio n. 1
0
        /// <summary>
        /// Adds a new user
        /// </summary>
        /// <param name="userModel">Model that contains all the user information</param>
        public void RegisterUser(UserItem userModel)
        {
            UserItem userItem = null;

            try
            {
                userItem = _db.GetUserItem(userModel.Username);
            }
            catch (Exception)
            {
            }

            if (userItem != null)
            {
                throw new UserExistsException("The username is already taken.");
            }

            if (userModel.Password != userModel.ConfirmPassword)
            {
                throw new PasswordMatchException("The password and confirm password do not match.");
            }

            PasswordManager passHelper = new PasswordManager(userModel.Password);
            UserItem        newUser    = new UserItem()
            {
                FirstName = userModel.FirstName,
                LastName  = userModel.LastName,
                Email     = userModel.Email,
                Username  = userModel.Username,
                Salt      = passHelper.Salt,
                Hash      = passHelper.Hash,
                RoleId    = (int)RoleManager.eRole.Customer
            };

            _db.AddUserItem(newUser);
            LoginUser(newUser.Username, userModel.Password);
        }