コード例 #1
0
        public async Task <ActionResult> GroupRoles(SelectGroupRolesViewModel selRoles)
        {
            if (ModelState.IsValid)
            {
                var groupRoles = await GroupManager.GetGroupRoles(selRoles.GroupId);

                var deletedRolesIds = selRoles.Roles.Where(role => groupRoles.Any(groupRole => groupRole.RoleId == role.RoleId && !role.IsSelected))
                                      .Select(role => role.RoleId);
                var newRolesIds = selRoles.Roles.Where(role => !groupRoles.Any(groupRole => groupRole.RoleId == role.RoleId)).Where(role => role.IsSelected)
                                  .Select(role => role.RoleId);

                await GroupManager.RemoveRolesFromGroupAsync(selRoles.GroupId, deletedRolesIds);

                await GroupManager.AddRoleToGroup(selRoles.GroupId, newRolesIds);

                return(RedirectToAction("GroupList"));
            }
            return(View());
        }