public async Task<ActionResult> EditUsers(RoleAdminEditUsersViewModel viewmodel, string[] checkboxSelectedUsers)
		{
			var roleId = viewmodel.RoleId;
			var roleName = viewmodel.RoleName;
			var selectedUserIds = new string[]{""};
			selectedUserIds = checkboxSelectedUsers;
			var assignedUserIds = UserManager.Users.Where(u => u.Roles.Any(r => r.RoleId == roleId)).Select(u => u.Id).ToList();
			var allUserIds = UserManager.Users.Select(u => u.Id).ToList();

			var currentPrincipalId = User.Identity.GetUserId();


			foreach(var userId in allUserIds )
			{
				IdentityResult result;
				// Add Role Assignment to User
				if (selectedUserIds.Contains(userId) && !assignedUserIds.Contains(userId))
				{
					if (userId != currentPrincipalId)
					{
						result = await UserManager.AddToRoleAsync(userId, roleName);
						if (!result.Succeeded)
						{
							return RedirectToAction("Index");
						}
					}
				}
				// Remove Role Assignment from User
				if (!selectedUserIds.Contains(userId) && assignedUserIds.Contains(userId))
				{
					if (userId != currentPrincipalId)
					{
						result = await UserManager.RemoveFromRoleAsync(userId, roleName);
						if (!result.Succeeded)
						{
							return RedirectToAction("Index");
						}
					}
				}
			}

			return View("Index");
		}
		// GET: Edit Users
		public async Task<ActionResult> EditUsers(string id)
		{
			AppRole role = await RoleManager.FindByIdAsync(id);
			var currentUserName = User.Identity.GetUserName();

			if (role == null)
			{
				return RedirectToAction("Index");
			}

			var viewmodel = new RoleAdminEditUsersViewModel()
			{
				RoleId = role.Id,
				RoleName = role.Name,
				AllUserNames = UserManager.Users.Select(u => u.UserName).ToList(),
				AssignedUserNames = UserManager.Users.Where(u => u.Roles.Any(r => r.RoleId == role.Id)).Select(u => u.UserName).ToList(),
				AllUsers = UserManager.Users.ToList(),
				AssignedUsers = UserManager.Users.Where(u => u.Roles.Any(r => r.RoleId == role.Id)).ToList()
			};
			return View(viewmodel);
		}