public async Task <ActionResult <UserDto> > GetCurrentUser()
        {
            var query  = new GetCurrentUserQuery(this);
            var result = await _mediator.Send(query);

            return(result);
        }
        public async Task <Response <UserResource> > Handle(GetCurrentUserQuery request, CancellationToken cancellationToken)
        {
            var user = await userRepo.GetUserByIdAsync(request.Userid);

            var resource = Mapping.Mapper.Map <UserResource>(user);

            return(Response.Ok <UserResource>(resource));
        }
        public async Task <ActionResult <UserDto> > Handle(GetCurrentUserQuery request, CancellationToken cancellationToken)
        {
            var user = await _userManager.FindByEmailFromClaimsPrinciple(_accessor.User);

            if (user == null)
            {
                return(request.Controller.NotFound(new ApiResponse(404, "User was not found. Please login again.")));
            }

            return(request.Controller.Ok(new UserDto
            {
                Id = user.Id,
                FirstName = user.FirstName,
                LastName = user.LastName,
                EmployeeNumber = user.EmployeeNumber,
                Email = user.Email,
                Token = await _tokenService.CreateToken(user)
            }));
        }