public async Task <IActionResult> Login([FromForm] UserLoginViewModel inputModel) { if (ModelState.IsValid) { var loginUser = new UserDTO() { EmailAddress = inputModel.User.EmailAddress, Password = inputModel.User.Password }; var result = await _userServiceAPI.TryLogin(loginUser); if (result == null) { ModelState.AddModelError("", "Could not find a user."); return(View("Index")); } var identityUser = await _userManager.FindByEmailAsync(result.EmailAddress); var signInResult = await _signInManager.PasswordSignInAsync(identityUser, result.Password, false, false); if (!signInResult.Succeeded) { ModelState.AddModelError("", "Was not able to sign in."); return(View("Index")); } return(RedirectToAction("Index", "Home")); } else { return(View("Index", inputModel)); } }
public async Task <UserDTO> TryLogin(UserDTO userDTO) { try { return(await _restClient.TryLogin(userDTO)); } catch (ApiException ex) { if (ex.StatusCode == HttpStatusCode.NotFound) { return(null); } else { throw; } } }