示例#1
0
        public ActionResult <AuthenticationData> Post([FromBody] RegisterModel registerModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!registerModel.IsValid)
            {
                return(BadRequest(new { Error = "Invalid fields" }));
            }

            if (!_userAccountRepository.IsUsernameUnique(registerModel.Username))
            {
                return(BadRequest(new { Error = "Username already exists" }));
            }

            var userAccount = new UserAccount
            {
                Username     = registerModel.Username,
                PasswordHash = _authService.GetPasswordHash(registerModel.Password),
                Name         = registerModel.Name
            };

            _userAccountRepository.Add(userAccount);
            _userAccountRepository.Commit();

            return(_authService.GetAuthenticationData(userAccount.Id));
        }