public async Task <IActionResult> DeleteUser(string id) { var user = await Usermanager.FindByIdAsync(id); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {id} cannot be found"; return(View("NotFound")); } else { if (await Usermanager.IsInRoleAsync(user, "Admin") || await Usermanager.IsInRoleAsync(user, "Employee")) { var claims = await Usermanager.GetClaimsAsync(user); var claimResult = await Usermanager.RemoveClaimsAsync(user, claims); if (!claimResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing claims"); return(View("ListUsers")); } var roles = await Usermanager.GetRolesAsync(user); var RolesResult = await Usermanager.RemoveFromRolesAsync(user, roles); if (!RolesResult.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing roles"); return(View("ListUsers")); } user.isactive = false; var result1 = await Usermanager.UpdateAsync(user); if (result1.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result1.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } var result = await Usermanager.DeleteAsync(user); if (result.Succeeded) { return(RedirectToAction("ListUsers")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View("ListUsers")); } }
public async Task <IActionResult> EditUser(EditUserViewModel model) { var user = await Usermanager.FindByIdAsync(model.Id); if (User.IsInRole("Admin") || User.IsInRole("Super Admin")) { var LoginUser = await Usermanager.GetUserAsync(User); if (!User.HasClaim("Edit User", "true") && LoginUser.Id != model.Id) { return(Forbid()); } } if (user == null) { ViewBag.ErrorMessage = $"User with Id = {model.Id} cannot be found"; return(View("NotFound")); } else { user.Email = model.Email; user.FullName = model.FullName; user.PhoneNumber = model.PhoneNumber; user.StreetAdress = model.StreetAdress; user.store_id = model.store_id; user.City = model.cityId; if (model.Photo != null) { if (model.Existingphotopath != null) { string filepath = Path.Combine(hostingEnvironment.WebRootPath, "Image", model.Existingphotopath); System.IO.File.Delete(filepath); } user.Photopath = util.ProcessPhotoproperty(model.Photo); } var result = await Usermanager.UpdateAsync(user); if (result.Succeeded) { if (User.IsInRole("Admin") || User.IsInRole("Super Admin") || User.IsInRole("Employee")) { return(RedirectToAction("GetUserById", new { id = user.Id })); } else { return(RedirectToAction("~/Views/Home/Profile.cshtml")); } } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View(model)); } }