public async Task <IEnumerable <Question> > FetchAsync(Subject subject, ICollection <int> termIds = null, ICollection <int> recruitIds = null) { var subjectIds = subject.GetSubIds(); subjectIds.Add(subject.Id); var spec = new QuestionSubjectIdsFilterSpecification(subjectIds); var list = await _questionRepository.ListAsync(spec); if (termIds.HasItems()) { var questionIds = FetchQuestionIdsByTerms(termIds); list = list.Where(item => questionIds.Contains(item.Id)).ToList(); } if (recruitIds.HasItems()) { var questionIds = FetchQuestionIdsByRecruits(recruitIds); list = list.Where(item => questionIds.Contains(item.Id)).ToList(); } return(list); }
public async Task <IEnumerable <Question> > FetchByRecruitAsync(Recruit recruit, Subject subject) { var subjectIds = subject.GetSubIds(); subjectIds.Add(subject.Id); var spec = new QuestionSubjectIdsFilterSpecification(subjectIds); var list = await _questionRepository.ListAsync(spec); var recruitIds = recruit.GetSubIds(); recruitIds.Add(recruit.Id); var questionIds = FetchQuestionIdsByRecruits(recruitIds); return(list.Where(item => questionIds.Contains(item.Id)).ToList()); }