private IEnumerable <Guid> GetExcludeMemberIds(IEmployer employer, MemberSearchQuery query, IEnumerable <Guid> memberIds) { if (query.InFolder != null && !query.InFolder.Value) { memberIds = GetExcludeList(memberIds, _candidateFoldersQuery.GetInFolderCandidateIds(employer)); } if (query.IsFlagged != null && !query.IsFlagged.Value) { memberIds = GetExcludeList(memberIds, _candidateFlagListsQuery.GetFlaggedCandidateIds(employer)); } if (query.HasNotes != null && !query.HasNotes.Value) { memberIds = GetExcludeList(memberIds, _candidateNotesQuery.GetHasNotesCandidateIds(employer)); } if (query.HasViewed != null && !query.HasViewed.Value) { memberIds = GetExcludeList(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); if (!allocation.HasExpired) { memberIds = GetExcludeList(memberIds, _employerMemberViewsQuery.GetAccessedMemberIds(employer)); } } return(memberIds); }
IList <Guid> IMemberActivityFiltersQuery.GetExcludeMemberIds(IEmployer employer, MemberSearchQuery query) { // Exclude filters. var memberIds = GetExcludeMemberIds(employer, query, null); // Exclude all blocked candidates. var candidateIds = _candidateBlockListsQuery.GetBlockedCandidateIds(employer); if (candidateIds.Count > 0) { memberIds = GetExcludeList(memberIds, candidateIds); } return(memberIds == null ? null : memberIds.ToList()); }
IList <Guid> IMemberActivityFiltersQuery.GetManagedIncludeMemberIds(IEmployer employer, Guid jobAdId, ApplicantStatus status, MemberSearchQuery query) { // Include those that are applicants for the job. var memberIds = _jobAdApplicantsQuery.GetApplicantIds(jobAdId, status); // Include filters. return(GetIncludeMemberIds(employer, query, memberIds)); }
IList <Guid> IMemberActivityFiltersQuery.GetSuggestedIncludeMemberIds(IEmployer employer, Guid jobAdId, MemberSearchQuery query) { return(GetIncludeMemberIds(employer, query, null)); }
public IList <Guid> GetBlockListIncludeMemberIds(IEmployer employer, Guid blockListId, MemberSearchQuery query) { // Include those who are blocked. var memberIds = _candidateBlockListsQuery.GetBlockedCandidateIds(employer, blockListId); // Include filters. return(GetIncludeMemberIds(employer, query, memberIds)); }
IList <Guid> IMemberActivityFiltersQuery.GetFlaggedIncludeMemberIds(IEmployer employer, MemberSearchQuery query) { // Include those who are flagged. var memberIds = _candidateFlagListsQuery.GetFlaggedCandidateIds(employer); // Include filters. return(GetIncludeMemberIds(employer, query, memberIds)); }
IList <Guid> IMemberActivityFiltersQuery.GetFolderIncludeMemberIds(IEmployer employer, Guid folderId, MemberSearchQuery query) { // Include those in the folder. var memberIds = _candidateFoldersQuery.GetInFolderCandidateIds(employer, folderId); // Include filters. return(GetIncludeMemberIds(employer, query, memberIds)); }
IList <Guid> IMemberActivityFiltersQuery.GetSuggestedExcludeMemberIds(IEmployer employer, Guid jobAdId, MemberSearchQuery query) { // Exclude filters. var memberIds = GetExcludeMemberIds(employer, query, null); // Exclude job ad specific members. if (employer != null) { memberIds = GetExcludeList(memberIds, _jobAdApplicantsQuery.GetApplicantIds(jobAdId)); } // Exclude all blocked candidates. var candidateIds = _candidateBlockListsQuery.GetBlockedCandidateIds(employer); if (candidateIds.Count > 0) { memberIds = GetExcludeList(memberIds, candidateIds); } return(memberIds == null ? null : memberIds.ToList()); }
public IList <Guid> GetBlockListExcludeMemberIds(IEmployer employer, Guid blockListId, MemberSearchQuery query) { // Exclude filters. var memberIds = GetExcludeMemberIds(employer, query, null); return(memberIds == null ? null : memberIds.ToList()); }