Example #1
0
        public AuthorizeModel Register(RegisterViewModel registerViewModel)
        {
            if (!new EmailAddressAttribute().IsValid(registerViewModel.UserName))
            {
                throw new Exception("Invalid E-mail");
            }

            if (!_passwordHelper.GetPasswordRegex(registerViewModel.Password))
            {
                throw new Exception("Invalid Credentials");
            }

            var user = _userRepository.GetUserByUserName(registerViewModel.UserName);

            if (user != null)
            {
                throw new Exception("User already exists");
            }

            if (registerViewModel.Password != registerViewModel.ConfirmPassword)
            {
                throw new Exception("Invalid Credentials");
            }

            (string salt, string hashedPassword) = _hashHelper.Hash(registerViewModel.Password);

            var createdUser = new User
            {
                UserName  = registerViewModel.UserName,
                FirstName = registerViewModel.FirstName,
                LastName  = registerViewModel.LastName,
                Password  = hashedPassword,
                Salt      = salt,
                Balance   = 1000,
                Role      = Role.Player
            };

            _userRepository.Create(createdUser);

            var model = new AuthorizeModel {
                Id = createdUser.Id, UserName = createdUser.UserName
            };

            model.Token = _tokenHelper.GenerateToken(createdUser.UserName, createdUser.Id, createdUser.Role);

            return(model);
        }
Example #2
0
        public AuthorizeModel Register(UserRegisterModel userRegister)
        {
            if (!new EmailAddressAttribute().IsValid(userRegister.Email))
            {
                throw new Exception("Please enter valid Email format");
            }

            if (!_passwordRegex.GetPasswordRegex(userRegister.Password))
            {
                throw new Exception("You need to add at least one lower case," +
                                    " at least one upper case,  at least one number, at least one special character, minimum 8 characters");
            }

            if (userRegister.Password != userRegister.ConfirmPassword)
            {
                throw new Exception("Invalid Credentials");
            }

            var userExists = _userRepository.GetUserByEmail(userRegister.Email);

            if (userExists != null)
            {
                throw new Exception("There is already User with that E-mail");
            }

            (string salt, string hashedPassword) = _hashHelper.Hash(userRegister.Password);

            var user = new User
            {
                FirstName = userRegister.FirstName,
                LastName  = userRegister.LastName,
                Email     = userRegister.Email,
                Password  = hashedPassword,
                Salt      = salt,
                Role      = RoleEnum.Customer
            };

            _userRepository.Create(user);

            var mappedUser = new AuthorizeModel {
                Id = user.Id, Email = user.Email
            };

            mappedUser.Token = _tokenHelper.GenerateToken(user.Email, user.Id, user.Role);

            return(mappedUser);
        }