|
@@ -143,13 +143,12 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
var examAnswerRepository = new ExamRepository<ExamAnswer>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
var userExamItemRepository = new ExamRepository<UserExamItem>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
- var userExamItemTable = userExamItemRepository.Queryable();
|
|
|
- var userExamTable = _repository.Queryable();
|
|
|
+ var userExamItemTable = userExamItemRepository.Queryable().Where(i=> i.QuestionId == examQuestionRequest.QuestionId);
|
|
|
+ var userExamTable = _repository.Queryable().Where(u=> u.UserId == _sessionContext.UserId);
|
|
|
var examAnswerTable = examAnswerRepository.Queryable();
|
|
|
|
|
|
var examAnswers = await examAnswerTable.InnerJoin(userExamItemTable, (e, i) => e.UserExamItemId == i.Id)
|
|
|
.InnerJoin(userExamTable, (e, i, u) => i.UserExamId == u.Id)
|
|
|
- .Where((e, i, u) => i.QuestionId == examQuestionRequest.QuestionId && u.UserId == _sessionContext.UserId)
|
|
|
.Select((e, i, u) => e).ToListAsync();
|
|
|
return examAnswers;
|
|
|
}
|
|
@@ -811,9 +810,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
|
|
|
private async Task<List<ExamAnswer>> UpdateExamAnswer(UpdateUserExamItemDto updateUserExamItemDto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var repository = new ExamRepository<ExamAnswer>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
-
|
|
|
- var examAnswerTable = repository.Queryable();
|
|
|
+ var examAnswerTable = _examAnswerRepository.Queryable();
|
|
|
|
|
|
var userExamItemTable = _userExamItemRepository.Queryable().Where(x => x.Id == updateUserExamItemDto.Id);
|
|
|
|
|
@@ -826,10 +823,26 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
if (examAnswer != null)
|
|
|
{
|
|
|
examAnswer.Answer = updateUserExamItemDto.Answer;
|
|
|
+ examAnswer.UserId = _sessionContext.UserId;
|
|
|
+ examAnswer.UserExamItemId = updateUserExamItemDto.Id;
|
|
|
|
|
|
examAnswer.ToUpdate(_sessionContext);
|
|
|
|
|
|
- await repository.ValidateAddAsync(examAnswer, cancellationToken);
|
|
|
+ await _examAnswerRepository.ValidateUpdateAsync(examAnswer, cancellationToken);
|
|
|
+
|
|
|
+ examAnswers.Add(examAnswer);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ examAnswer = new ExamAnswer
|
|
|
+ {
|
|
|
+ Answer = updateUserExamItemDto.Answer,
|
|
|
+ UserId = _sessionContext.UserId,
|
|
|
+ UserExamItemId = updateUserExamItemDto.Id
|
|
|
+ };
|
|
|
+ examAnswer.ToInsert(_sessionContext);
|
|
|
+
|
|
|
+ await _examAnswerRepository.ValidateAddAsync(examAnswer, cancellationToken);
|
|
|
|
|
|
examAnswers.Add(examAnswer);
|
|
|
}
|