public async Task <ActionResult> Delete(string id) { EfRole role = await RoleManager.FindByIdAsync(id); if (role != null) { try { IdentityResult result = await RoleManager.DeleteAsync(role); if (result.Succeeded) { _logger.Info($"Role {role.Name} was deleted."); return(RedirectToAction("Index")); } throw new Exception(result.Errors.ToString()); } catch (Exception exception) { _logger.Error(exception.Message); } } return(View("Error", new[] { "Role not found" })); }
/// <summary> /// Edits Role. /// </summary> /// <param name="id">string id of Role.</param> /// <returns>View of RoleEditModel.</returns> public async Task <ActionResult> Edit(string id) { EfRole role = await RoleManager.FindByIdAsync(id); string[] membersIds = role.Users.Select(u => u.UserId).ToArray(); IEnumerable <User> members = UserManager.Users.Where(x => membersIds.Any(m => m == x.Id)); IEnumerable <User> nonMembers = UserManager.Users.Except(members); return(View(new RoleEditModel { Role = role, Members = members, NonMembers = nonMembers })); }