public static EmployeeEditViewModel CreateForEdit(ApplicationUser user, List <IdentityRole> roles, List <City> cityList) { Dictionary <string, IdentityRole> roleMap = roles.ToDictionary(x => x.Id, x => x); var item = new EmployeeEditViewModel { EditId = user.Id, FIO = user.FIO, Email = user.Email, OpenPassword = user.OpenPassword, CityId = user.CityId ?? 0, IsCreateCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.CreateCustomer) != null, IsEditCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.EditCustomer) != null, IsDeleteCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.DeleteCustomer) != null, IsCreateHousing = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.CreateHousing) != null, IsEditHousing = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.EditHousing) != null, IsDeleteHousiong = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.DeleteHousing) != null, IsManageUsers = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.ManageUser) != null, }; return(item); }
public async Task<IActionResult> Edit(EmployeeEditViewModel model, string editId) { if (ModelState.IsValid) { ApplicationUser user = _context.ApplicationUser.GetById(editId); user.FIO = model.FIO; user.CityId = model.CityId; var selectedRoles = model.GetSelectedRoles(); foreach (var roleName in RoleNames.PermissionRoles) { bool isSelected = selectedRoles.Contains(roleName); bool userInRole = await _userManager.IsInRoleAsync(user, roleName); if (isSelected) { if (!userInRole) { await _userManager.AddToRoleAsync(user, roleName); } } else { if (userInRole) { await _userManager.RemoveFromRoleAsync(user, roleName); } } } _context.Update(user); _context.SaveChanges(); return RedirectToAction("Index"); } return View(); }
public static EmployeeEditViewModel CreateForEdit(ApplicationUser user, List<IdentityRole> roles, List<City> cityList) { Dictionary<string, IdentityRole> roleMap = roles.ToDictionary(x => x.Id, x => x); var item = new EmployeeEditViewModel { EditId = user.Id, FIO = user.FIO, Email = user.Email, OpenPassword = user.OpenPassword, CityId = user.CityId ?? 0, IsCreateCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.CreateCustomer) != null, IsEditCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.EditCustomer) != null, IsDeleteCustomer = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.DeleteCustomer) != null, IsCreateHousing= user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.CreateHousing) != null, IsEditHousing = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.EditHousing) != null, IsDeleteHousiong = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.DeleteHousing) != null, IsManageUsers = user.Roles.SingleOrDefault(x => roleMap[x.RoleId].Name == RoleNames.ManageUser) != null, }; return item; }