public async Task <ActionResult <ApplicationUserDTO> > GetUser([FromBody] UserInfoLogin userInfologin)
        {
            var userInfo = new UserInfo();

            userInfo.Email    = userInfologin.Email;
            userInfo.Password = userInfologin.Password;
            var user = await _userManger.FindByEmailAsync(userInfo.Email);

            var userDTO = mapper.Map <ApplicationUserDTO>(user);

            return(userDTO);
        }
        public TokenInfo GetToken(UserInfoLogin userInfo)
        {
            var jsonEnvio   = JsonConvert.SerializeObject(userInfo);
            var jsonRetorno = Request.Post(_urlToken, jsonEnvio);

            var tokenInfo = JsonConvert.DeserializeObject <TokenInfo>(jsonRetorno);

            if (tokenInfo != null && !string.IsNullOrEmpty(tokenInfo.Token))
            {
                tokenInfo.Success = true;
                tokenInfo.Message = "Token obtido com sucesso";
            }

            return(tokenInfo);
        }
        public async Task <ActionResult <UserToken> > Login([FromBody] UserInfoLogin userInfologin)
        {
            var userInfo = new UserInfo();

            userInfo.Email    = userInfologin.Email;
            userInfo.Password = userInfologin.Password;
            var result = await _signInManager.PasswordSignInAsync(userInfo.Email, userInfo.Password, isPersistent : true, lockoutOnFailure : false);

            if (result.Succeeded)
            {
                var userdto = await GetUser(userInfologin);

                var user = await _userManger.FindByEmailAsync(userInfo.Email);

                string userid = user.Id;
                return(new JsonResult(new { Result = BuildToken(userInfo, userid), user = userdto }));
            }
            else
            {
                ModelState.AddModelError(string.Empty, "El usuario o contraseña es incorrecto");
                return(BadRequest(ModelState));
            }
        }