public IEnumerable <Resource> GetDisabledResourceAncestors(IEnumerable <Resource> availableResources) { var missingParentIds = availableResources .Where(x => x.ParentResourceId.HasValue) .SelectMany(x => resourceAncestors[x.Id]).Distinct() .Where(x => !availableResources.Select(y => y.Id).Contains(x)); return(resources.OfType <SlaveGroup>().Union(disabledParentResources).Where(x => missingParentIds.Contains(x.Id))); }