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));
            }
        }
Beispiel #2
0
 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;
         }
     }
 }