public IActionResult _EditUser(string id)
        {
            var user      = _userManager.FindByIdAsync(id).Result;
            var viewModel = new _EditUserViewModel
            {
                Id       = user.Id,
                Email    = user.Email,
                UserName = user.UserName
            };

            viewModel.SelectedRoleId = GetRoleId(user.Id);
            viewModel.Roles          = GetRolesListItems();
            return(View(viewModel));
        }
 public IActionResult _EditUser(string id, _EditUserViewModel model)
 {
     if (ModelState.IsValid)
     {
         var user = _dbContext.Users.First(u => u.Id == id);
         user.Email    = model.Email;
         user.UserName = model.UserName;
         if (model.SelectedRoleId != null && model.SelectedRoleId != "0")
         {
             var selectedRole = _dbContext.Roles.First(r => r.Id == model.SelectedRoleId);
             var isInRole     = _userManager.IsInRoleAsync(user, selectedRole.Name).Result;
             if (!isInRole)
             {
                 var userRole = _dbContext.UserRoles.FirstOrDefault(ur => ur.UserId == id);
                 if (userRole != null)
                 {
                     var currentRoleName = GetRoleName(user.Id);
                     var r   = _userManager.RemoveFromRoleAsync(user, currentRoleName).Result;
                     var res = _userManager.AddToRoleAsync(user, selectedRole.Name).Result;
                 }
                 else
                 {
                     var r = _userManager.AddToRoleAsync(user, selectedRole.Name).Result;
                 }
             }
         }
         else
         {
             var userRole = _dbContext.UserRoles.FirstOrDefault(ur => ur.UserId == model.Id);
             if (userRole != null)
             {
                 var role = _dbContext.Roles.First(r => r.Id == userRole.RoleId);
                 var r    = _userManager.RemoveFromRoleAsync(user, role.Name).Result;
             }
         }
         _dbContext.SaveChanges();
     }
     return(RedirectToAction("AllUsers"));
 }