示例#1
0
        public async Task <IActionResult> EditRole(RoleModificationViewModel model)
        {
            if (ModelState.IsValid)
            {
                foreach (int userId in model.IdsToAdd ?? new int[] {})
                {
                    var user = _userServices.GetItem(userId);
                    if (user != null)
                    {
                        var result = await _userServices.AddToRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
                foreach (var userId in model.IdsToDelete ?? new int[] { })
                {
                    var user = _userServices.GetItem(userId);
                    if (user != null)
                    {
                        var result = await _userServices.RemoveFromRoleAsync(user, model.RoleName);

                        if (!result.Succeeded)
                        {
                            AddErrorsFromResult(result);
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Roles)));
            }

            return(await EditRole(model.RoleId));
        }