public async Task <IActionResult> Register([FromBody] RegisterModel model) { // map model to entity var user = _mapper.Map <User>(model); //check if email already exists var existingUser = _unitOfWork.User.GetByEmail(model.Email); // check if user exists if (existingUser != null) { return(BadRequest(new { message = "Email already exists!" })); } try { byte[] passwordHash, passwordSalt; UserSecurity.CreatePasswordHash(model.Password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; // create user _unitOfWork.User.Add(user); return(Ok(await _unitOfWork.Complete())); } catch (AppException ex) { // return error message if there was an exception return(BadRequest(new { message = ex.Message })); } }