|
@@ -326,13 +326,13 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
{
|
|
{
|
|
var questionRepository = new ExamRepository<Question>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
var questionRepository = new ExamRepository<Question>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
var questionTagRepository = new ExamRepository<QuestionTag>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
var questionTagRepository = new ExamRepository<QuestionTag>(_repository.UOW, _dataPermissionFilterBuilder, _serviceProvider);
|
|
- var questionTagTable = questionTagRepository.Queryable();
|
|
|
|
- var questionTable = questionRepository.Queryable();
|
|
|
|
|
|
+
|
|
|
|
+ var expression = testPaperQuestionRequest.GetExpression();
|
|
|
|
+ var questionExpression = testPaperQuestionRequest.GetQuestionExpression();
|
|
|
|
+ var questionTagTable = questionTagRepository.Queryable().Where(expression);
|
|
|
|
+ var questionTable = questionRepository.Queryable().Where(questionExpression);
|
|
|
|
|
|
var questions = await questionTable.LeftJoin(questionTagTable, (q, qt) => q.Id == qt.QuestionId)
|
|
var questions = await questionTable.LeftJoin(questionTagTable, (q, qt) => q.Id == qt.QuestionId)
|
|
- .Where((q, qt) => q.QuestionType == testPaperQuestionRequest.QuestionType
|
|
|
|
- ).WhereIF(testPaperQuestionRequest.DifficultyLevel.IsNotNull(), (q, qt) => q.DifficultyLevel == testPaperQuestionRequest.DifficultyLevel)
|
|
|
|
- .WhereIF(testPaperQuestionRequest.TagIds.IsNotNull() && testPaperQuestionRequest.TagIds.Any(), (q, qt) => testPaperQuestionRequest.TagIds.Contains(qt.TagId))
|
|
|
|
.Select((q, qt) => q).Take(testPaperQuestionRequest.Count).OrderBy(q => SqlFunc.GetRandom()).ToListAsync();
|
|
.Select((q, qt) => q).Take(testPaperQuestionRequest.Count).OrderBy(q => SqlFunc.GetRandom()).ToListAsync();
|
|
|
|
|
|
var questionDtos = new List<SimpleQuestionViewResponse>();
|
|
var questionDtos = new List<SimpleQuestionViewResponse>();
|