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);
        }
Exemplo n.º 2
0
        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;
        }