public async Task <IActionResult> GetUser(ReturnedUserVM userVM) { try { if (!ModelState.IsValid) { throw new Exception("Something went wrong. Please try again."); } var user = await _service.FindUser(userVM.UserId, userVM.UserToken); if (user.ErrorMessage == null) { return(Ok(user)); } if (user.ErrorMessage.Contains("found")) { return(NotFound(user.ErrorMessage)); } else if (user.ErrorMessage.Contains("verify")) { return(Unauthorized(user.ErrorMessage)); } else { throw new Exception(user.ErrorMessage); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> SignOut(ReturnedUserVM userVM) { var result = await _service.LogOutUser(userVM.UserId, userVM.UserToken); if (result.Success != null) { return(Ok(result.Success)); } else { return(BadRequest(result.Failed)); } }
public async Task <ReturnedUserVM> LogInUser(LoginUser10 user10) { try { if (string.IsNullOrWhiteSpace(user10.Password) || string.IsNullOrWhiteSpace(user10.UserName)) { throw new Exception("Username or password was incorrect."); } var user = await _userManager.FindByNameAsync(user10.UserName); if (user == null) { throw new Exception("No user with the selected username exists."); } var result = await _signInManager.PasswordSignInAsync(user.UserName, user10.Password, false, false); if (result.Succeeded) { ReturnedUserVM returnedUser = new ReturnedUserVM { UserId = user.Id, FrontEndToken = VerificationToken(), UserToken = await _userManager.GenerateUserTokenAsync(user, "Default", "authentication-backend"), Roles = await _userManager.GetRolesAsync(user) }; return(returnedUser); } else if (result.IsLockedOut) { throw new Exception("User is locked out. Please try again later."); } else { throw new Exception("Username or password was incorrect."); } } catch (Exception ex) { ReturnedUserVM returnedUser = new ReturnedUserVM { ErrorMessage = ex.Message }; return(returnedUser); } }