|
@@ -296,9 +296,9 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public async Task<StartExamViewResponse> ExamAsync(UpdateUserExamItemDto addUserExamItemDto, CancellationToken cancellationToken)
|
|
|
+ public async Task<StartExamViewResponse> ExamAsync(UpdateUserExamItemDto updateUserExamItemDto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var userExam = await new ExamRepository<ExamUserExam>(_uow, _dataPermissionFilterBuilder, _serviceProvider).Queryable().Where(x => x.Id == addUserExamItemDto.UserExamId).FirstAsync();
|
|
|
+ var userExam = await new ExamRepository<ExamUserExam>(_uow, _dataPermissionFilterBuilder, _serviceProvider).Queryable().Where(x => x.Id == updateUserExamItemDto.UserExamId).FirstAsync();
|
|
|
|
|
|
var startExamViewResponse = await CheckExamValid(userExam, cancellationToken);
|
|
|
|
|
@@ -309,18 +309,19 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
return startExamViewResponse;
|
|
|
}
|
|
|
|
|
|
- var hasUserExamItem = _userExamItemRepository.Queryable().Where(x => x.UserExamId == addUserExamItemDto.UserExamId && x.QuestionId == addUserExamItemDto.QuestionId).Any();
|
|
|
+ var hasUserExamItem = _userExamItemRepository.Queryable().Where(x => x.UserExamId == updateUserExamItemDto.UserExamId && x.QuestionId == updateUserExamItemDto.QuestionId).Any();
|
|
|
|
|
|
if (!hasUserExamItem)
|
|
|
{
|
|
|
+ var addUserExamItemDto = _mapper.Map<UpdateUserExamItemDto, AddUserExamItemDto>(updateUserExamItemDto);
|
|
|
await AddExamAsync(_userExamItemRepository, addUserExamItemDto, cancellationToken);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- await UpdateExamAsync(_userExamItemRepository, addUserExamItemDto, cancellationToken);
|
|
|
+ await UpdateExamAsync(_userExamItemRepository, updateUserExamItemDto, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- await CalcuteExamItemScore(_userExamItemRepository, addUserExamItemDto, cancellationToken);
|
|
|
+ await CalcuteExamItemScore(_userExamItemRepository, updateUserExamItemDto, cancellationToken);
|
|
|
|
|
|
return startExamViewResponse;
|
|
|
}
|
|
@@ -591,7 +592,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
.LeftJoin(userExamItemOptionTable, (e, i, q, o) => i.Id == o.UserExamItemId)
|
|
|
.LeftJoin(quesitonOptionTable, (e, i, q, o, qo) => o.QuestionOptionId == qo.Id)
|
|
|
.LeftJoin(examAnswerTable, (e, i, q, o, qo, a) => i.Id == a.UserExamItemId)
|
|
|
- .LeftJoin(testPaperItemAnswerTable, (e, i, q, o, qo, a, ta) => ta.QuestionId == qo.QuestionId)
|
|
|
+ .LeftJoin(testPaperItemAnswerTable, (e, i, q, o, qo, a, ta) => ta.QuestionId == q.QuestionId)
|
|
|
.InnerJoin(questionScoreTable, (e, i, q, o, qo, a, ta, s) => q.QuestionType == s.QuestionType && e.ExamId == s.ExamManageId)
|
|
|
.Where((e, i, q, o, qo, a, ta, s) => !(q.QuestionType == EQuestionType.Single || q.QuestionType == EQuestionType.Multi || q.QuestionType == EQuestionType.Judge))
|
|
|
.Select(
|
|
@@ -998,6 +999,8 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
|
|
|
await _examAnswerRepository.ValidateAddAsync(examAnswer, cancellationToken);
|
|
|
|
|
|
+ examAnswers.Add(examAnswer);
|
|
|
+
|
|
|
return examAnswers;
|
|
|
}
|
|
|
|
|
@@ -1259,12 +1262,13 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
Status = u.Status,
|
|
|
SortIndex = u.SortIndex,
|
|
|
ExamStatus = u.ExamStatus,
|
|
|
- IsSuccess = u.IsSuccess,
|
|
|
+ IsSuccess = u.IsCheck? u.IsSuccess:null,
|
|
|
EndTime = e.EndTime,
|
|
|
StartTime = e.StartTime,
|
|
|
TimeSpan = e.TimeSpan,
|
|
|
ExamType = e.ExamType,
|
|
|
- ExamId = e.Id
|
|
|
+ ExamId = e.Id,
|
|
|
+ IsCheck = u.IsCheck
|
|
|
});
|
|
|
return queryable;
|
|
|
}
|