public async Task <IActionResult> DeleteUser(AdminVerificationForUserVM verificationVM) { try { if (!ModelState.IsValid) { throw new Exception("Something went wrong!"); } if (string.IsNullOrWhiteSpace(verificationVM.UserId)) { throw new Exception("Something went wrong. Please try again."); } var result = await _service.DeleteUser(verificationVM); if (result.Failed == null) { return(Ok(result.Success)); } if (result.Failed.Contains("found")) { return(NotFound(result.Failed)); } throw new Exception(result.Failed); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <AdminResultVM> DeleteUser(AdminVerificationForUserVM verificationVM) { AdminResultVM resultVM = new AdminResultVM(); try { if (string.IsNullOrWhiteSpace(verificationVM.AdminId) || string.IsNullOrWhiteSpace(verificationVM.UserId) || string.IsNullOrWhiteSpace(verificationVM.AdminToken)) { throw new Exception("Something went wrong."); } var admin = await _userManager.FindByIdAsync(verificationVM.AdminId); if (admin == null) { throw new Exception("Cannot verify user."); } var adminResult = await _userManager.VerifyUserTokenAsync(admin, "Default", "authentication-backend", verificationVM.AdminToken); if (!adminResult) { throw new Exception("Could not verify the administrator."); } var user = await _userManager.FindByIdAsync(verificationVM.UserId); if (user == null) { throw new Exception("User could not be found."); } var result = await _userManager.DeleteAsync(user); if (result.Succeeded) { resultVM.Success = "User was successfully removed"; return(resultVM); } else { throw new Exception(result.Errors.ToString()); } } catch (Exception ex) { resultVM.Failed = ex.Message; return(resultVM); } }
public async Task <IActionResult> GetUser(AdminVerificationForUserVM admin) { if (string.IsNullOrWhiteSpace(admin.AdminId) || string.IsNullOrWhiteSpace(admin.AdminToken) || string.IsNullOrWhiteSpace(admin.UserId)) { return(BadRequest("Something went wrong.")); } var user = await _service.GetUser(admin); if (user.ErrorMessage == null) { return(Ok(user)); } if (user.ErrorMessage.Contains("Found")) { return(NotFound(user.ErrorMessage)); } return(BadRequest(user.ErrorMessage)); }
public async Task <AdminUserDetailsVM> GetUser(AdminVerificationForUserVM verificationVM) { try { if (string.IsNullOrWhiteSpace(verificationVM.AdminId) || string.IsNullOrWhiteSpace(verificationVM.UserId) || string.IsNullOrWhiteSpace(verificationVM.AdminToken)) { throw new Exception("Something went wrong."); } var admin = await _userManager.FindByIdAsync(verificationVM.AdminId); if (admin == null) { throw new Exception("Cannot verify user."); } var adminResult = await _userManager.VerifyUserTokenAsync(admin, "Default", "authentication-backend", verificationVM.AdminToken); if (!adminResult) { throw new Exception("Could not verify the administrator."); } var user = await _userManager.FindByIdAsync(verificationVM.UserId); if (user == null) { throw new Exception("User could not be found."); } // Doing it this way because for some reason it throws an exception if they are combined. DetailsVM User = new DetailsVM { UserId = user.Id, UserName = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Age = user.Age, Email = user.Email, IsAdmin = user.IsAdmin, Roles = await _userManager.GetRolesAsync(user), }; AdminUserDetailsVM userVM = new AdminUserDetailsVM { AdminId = admin.Id, User = User, FrontEndToken = VerificationToken(), AdminToken = await UserToken(admin), }; return(userVM); } catch (Exception ex) { AdminUserDetailsVM userVM = new AdminUserDetailsVM { ErrorMessage = ex.Message }; return(userVM); } }