public ActionResult ManagePermission(int id) { var groupViewModel = _permisisonGroupService.CreateViewModel(id); var permissionViewModelList = _permisisonGroupService.GetPermissionsByGroup(id); permissionViewModelList = permissionViewModelList.Select(x => { x.IsSelected = true; return(x); }).ToList(); var availablePermissionViewModelList = _permisisonGroupService.GetNotAssignedChildPermissions(trustId: groupViewModel.TrustId); //Permissions which are not assigned to any group groupViewModel.PermissionViewModelList = new List <PermissionViewModel>(); if (permissionViewModelList != null) { groupViewModel.PermissionViewModelList.AddRange(permissionViewModelList); } if (availablePermissionViewModelList != null) { var addedPermissionIds = groupViewModel.PermissionViewModelList.Select(x => x.Id).ToList(); groupViewModel.PermissionViewModelList.AddRange(availablePermissionViewModelList.Where(x => !addedPermissionIds.Contains(x.Id))); } return(View(groupViewModel)); }