private List <PermissionViewModel> Get(int userId, bool available) { var roleId = RoleService.GetRoleFor(userId).Id; List <int> rolesPermissionIds = RelationRolePermissionRepository.GetAllActiveData() .Where(x => x.RoleId == roleId) .Select(x => x.PermissionId) .ToList(); List <int> userPermissionIds = RelationUserPermissionRepository.GetAllActiveData() .Where(x => x.UserId == userId) .Select(x => x.PermissionId) .ToList(); var union = rolesPermissionIds.Union(userPermissionIds); var domainData = PermissionRepository.GetAllActiveData() .Where(x => available ? !union.Contains(x.Id) : union.Contains(x.Id)) .ToList(); return(ConvertDataToViewModels(domainData).OrderByDescending(x => x.Id).ToList()); }