public async Task <LoginCommandResult> Handle(LoginCommand request, CancellationToken cancellationToken)
        {
            User user = await _userAuthService.AuthenticateOrFail(request.UserQuery, request.Password);

            var role  = _roleService.GetRoleByAdminStatus(user.IsAdmin);
            var token = _authTokenGenerator.GenerateToken(user.Id, role);

            return(new LoginCommandResult
            {
                FirstName = user.FirstName,
                LastName = user.LastName,
                Username = user.Username,
                Email = user.Email,
                Token = token
            });
        }