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 }));
        }