public async Task <IActionResult> RegisterUser([FromBody] RegisterUserRequest registerRequest) { var userModel = registerRequest.ToModel(); if (userModel == null) { return(BadRequest()); } var byEmail = await _userManager.GetByEmail(userModel.Email); if (byEmail != null) { return(BadRequest()); } var byLogin = await _userManager.GetByLogin(userModel.Login); if (byLogin != null) { return(BadRequest()); } var login = new UserLoginModel() { Username = userModel.Login, Password = userModel.Password }; userModel.Password = _passwordHasher.HashPassword(userModel, userModel.Password); userModel.CreatedDate = DateTime.Now; userModel.Role = UserRole.User; await _userManager.InsertProfileAsync(userModel); var user = _authorizationManager.Authenticate(login, userModel); if (user == null) { return(Unauthorized()); } var result = GenerateToken(userModel); return(Ok(new { Token = result })); }