示例#1
0
        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);
        }
示例#2
0
        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());
        }