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