Ejemplo n.º 1
0
        public async Task <IActionResult> Login(LoginRequest userloginrequest)
        {
            UserLoginResponse usersReponse = new UserLoginResponse();

            usersReponse.jwt = new JwtToken();
            try
            {
                var checkEmail = _context.Users.Any(x => x.Email == userloginrequest.email);
                if (checkEmail == false)
                {
                    usersReponse.status_code = 404;
                    usersReponse.error       = "User not found";
                    return(NotFound(new Response <UserLoginResponse>(usersReponse)));
                }
                string hashedPassword = PasswordHasher.HashPassword(userloginrequest.password);
                Users  _user          = await _context.Users.Where(h => h.Email == userloginrequest.email && h.Password == hashedPassword).SingleOrDefaultAsync();

                if (_user == null)
                {
                    usersReponse.status_code = 400;
                    usersReponse.error       = "email or password is incorrect";
                    return(BadRequest(new Response <UserLoginResponse>(usersReponse)));
                }


                usersReponse.status_code = 200;
                usersReponse.jwt         = await TokenServices.GenerateTokenAsync(_user.Email, _user.Id.ToString());

                var user = _mapper.Map <UsersViewModel>(_user);
                return(Ok(new Response <UserLoginResponse>(usersReponse)));
            }
            catch (Exception ex)
            {
                usersReponse.error       = ex.Message;
                usersReponse.status_code = 400;
                return(BadRequest(new Response <UserLoginResponse>(usersReponse)));
            }
        }