/// <summary>
        /// Adds a new user to the encryption messenger system
        /// </summary>
        /// <param name="userModel">Model that contains all the user information</param>
        public void RegisterUser(User 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()
            {
                Username = userModel.Username,
                Salt     = passHelper.Salt,
                Hash     = passHelper.Hash,
            };

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