|
@@ -50,6 +50,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
private readonly IUserExamItemRepository _userExamItemRepository;
|
|
|
private readonly IUserExamItemOptionRepository _userExamItemOptionRepository;
|
|
|
private readonly IExamAnswerRepository _examAnswerRepository;
|
|
|
+ private readonly IExamManageRepository _examManageRepository;
|
|
|
private readonly IDataPermissionFilterBuilder _dataPermissionFilterBuilder;
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
private readonly IMapper _mapper;
|
|
@@ -60,6 +61,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
IUserExamItemRepository userExamItemRepository,
|
|
|
IUserExamItemOptionRepository userExamItemOptionRepository,
|
|
|
IExamAnswerRepository examAnswerRepository,
|
|
|
+ IExamManageRepository examManageRepository,
|
|
|
IDataPermissionFilterBuilder dataPermissionFilterBuilder, IServiceProvider serviceProvider,
|
|
|
IMapper mapper, ISessionContext sessionContext) : base(repository, mapper, sessionContext)
|
|
|
{
|
|
@@ -67,6 +69,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
this._userExamItemRepository = userExamItemRepository;
|
|
|
this._userExamItemOptionRepository = userExamItemOptionRepository;
|
|
|
this._examAnswerRepository = examAnswerRepository;
|
|
|
+ this._examManageRepository = examManageRepository;
|
|
|
this._dataPermissionFilterBuilder = dataPermissionFilterBuilder;
|
|
|
this._serviceProvider = serviceProvider;
|
|
|
this._mapper = mapper;
|
|
@@ -193,7 +196,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
public async Task<List<GradingQuestionViewResponce>> GetGradingQuestionViewResponces(ExamQuestionGroupRequest examQuestionGroupRequest)
|
|
|
{
|
|
|
var expression = examQuestionGroupRequest.GetExpression();
|
|
|
- var examManageTable = new ExamRepository<ExamManage>(_uow, _dataPermissionFilterBuilder, _serviceProvider).Queryable().Where(expression);
|
|
|
+ var examManageTable = _examManageRepository.Queryable().Where(expression);
|
|
|
var testPaperItemTable = new ExamRepository<Exams.ExamManages.ExamQuestionBak>(_uow, _dataPermissionFilterBuilder, _serviceProvider).Queryable();
|
|
|
|
|
|
var queryable = await examManageTable.InnerJoin(testPaperItemTable, (e, i) => e.Id == i.ExamId)
|
|
@@ -284,12 +287,11 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
|
|
|
if (userExams.All(x => x.IsSubmit))
|
|
|
{
|
|
|
- var repository = new ExamRepository<ExamManage>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var examManage = await repository.GetAsync(x=>x.Id == examId);
|
|
|
+ var examManage = await _examManageRepository.GetAsync(x=>x.Id == examId);
|
|
|
|
|
|
examManage.ExamStatus = EExamStatus.Complete;
|
|
|
|
|
|
- await repository.UpdateWithValidateAsync(examManage, cancellationToken);
|
|
|
+ await _examManageRepository.UpdateWithValidateAsync(examManage, cancellationToken);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -343,14 +345,13 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
userExam.ToUpdate(_sessionContext);
|
|
|
|
|
|
await _repository.UpdateWithValidateAsync(userExam, cancellationToken);
|
|
|
+
|
|
|
|
|
|
- var repository = new ExamRepository<ExamManage>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
-
|
|
|
- var examManage = await repository.GetAsync(x => x.Id == userExam.ExamId);
|
|
|
+ var examManage = await _examManageRepository.GetAsync(x => x.Id == userExam.ExamId);
|
|
|
|
|
|
examManage.ExamStatus = EExamStatus.Executing;
|
|
|
|
|
|
- await repository.UpdateWithValidateAsync(examManage, cancellationToken);
|
|
|
+ await _examManageRepository.UpdateWithValidateAsync(examManage, cancellationToken);
|
|
|
|
|
|
return new StartExamViewResponse
|
|
|
{
|
|
@@ -362,9 +363,8 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
|
|
|
private async Task<StartExamViewResponse> CheckExamValid(ExamUserExam examUserExam, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var examManageRepository = new ExamRepository<ExamManage>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
- var examManage = await examManageRepository.Queryable().Where(x => x.Id == examUserExam.ExamId).FirstAsync();
|
|
|
+ var examManage = await _examManageRepository.Queryable().Where(x => x.Id == examUserExam.ExamId).FirstAsync();
|
|
|
|
|
|
var startExamViewResponse = new StartExamViewResponse
|
|
|
{
|
|
@@ -394,7 +394,7 @@ namespace Hotline.Application.Exam.Service.ExamManages
|
|
|
if (examManage.ExamStatus== EExamStatus.NoStart)
|
|
|
{
|
|
|
examManage.ExamStatus = EExamStatus.Executing;
|
|
|
- await examManageRepository.UpdateWithValidateAsync(examManage,cancellationToken);
|
|
|
+ await _examManageRepository.UpdateWithValidateAsync(examManage,cancellationToken);
|
|
|
}
|
|
|
|
|
|
startExamViewResponse.TimeSpan = examManage?.TimeSpan ?? 0;
|