private IList <Guid> GetIncludeMemberIds(IEmployer employer, MemberSearchQuery query, IEnumerable <Guid> memberIds) { // Include filters. if (query.InFolder != null && query.InFolder.Value) { memberIds = GetIncludeList(memberIds, _candidateFoldersQuery.GetInFolderCandidateIds(employer)); } if (query.IsFlagged != null && query.IsFlagged.Value) { memberIds = GetIncludeList(memberIds, _candidateFlagListsQuery.GetFlaggedCandidateIds(employer)); } if (query.HasNotes != null && query.HasNotes.Value) { memberIds = GetIncludeList(memberIds, _candidateNotesQuery.GetHasNotesCandidateIds(employer)); } if (query.HasViewed != null && query.HasViewed.Value) { memberIds = GetIncludeList(memberIds, _employerMemberViewsQuery.GetViewedMemberIds(employer)); } if (query.IsUnlocked != null && query.IsUnlocked.Value) { // Must have active allocations or else no-one is unlocked. var allocation = GetContactCreditsAllocation(employer); memberIds = allocation.HasExpired ? GetIncludeList(memberIds, new Guid[0]) : GetIncludeList(memberIds, _employerMemberViewsQuery.GetAccessedMemberIds(employer)); } return(memberIds == null ? null : memberIds.ToList()); }