public async Task <ActionResult <UserDto> > Register(RegisterDto registerDto)
        {
            if (await UserExists(registerDto.Username))
            {
                return(BadRequest("User Name Taken"));
            }

            var user = _mapper.Map <AppUser>(registerDto);

            using var hmac = new HMACSHA512();


            user.UserName     = registerDto.Username.ToLower();
            user.PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(registerDto.Password));
            user.PasswordSolt = hmac.Key;


            _context.Users.Add(user);
            await _context.SaveChangesAsync();

            return(new UserDto
            {
                UserName = user.UserName,
                Token = _tokenservice.CreateToken(user),
                IsKnownAs = user.IsKnownAs,
                Gender = user.Gender
            });
        }
        public async Task <ActionResult <UserDto> > Register(RegisterDto registerDto)
        {
            if (await UserExists(registerDto.Username))
            {
                return(BadRequest("User Name Taken"));
            }

            var user = _mapper.Map <AppUser>(registerDto);


            user.UserName = registerDto.Username.ToLower();


            var result = await _userManager.CreateAsync(user, registerDto.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            var roleresult = await _userManager.AddToRoleAsync(user, "Member");

            if (!roleresult.Succeeded)
            {
                return(BadRequest(roleresult.Errors));
            }


            return(new UserDto
            {
                Username = user.UserName,
                Token = await _tokenservice.CreateToken(user),
                KnownAs = user.KnownAs,
                Gender = user.Gender
            });
        }