public Task <IQueryable <StudentTestSessionDto> > Handle( GetAllStudentTestSessionsRequest request, CancellationToken cancellationToken) { var queryParameters = new StudentTestSessionQueryParameters { StudentId = _executionContextService.GetCurrentUserId(), ExceptTestSessionState = TestSessionState.Pending, }; return(Task.FromResult(_queryProvider.Queryable(queryParameters).Select(StudentTestSessionDto.Selector))); }
public async Task <IReadOnlyCollection <string> > Handle( GetStudentTestSessionTriggersRequest request, CancellationToken cancellationToken) { var queryParameters = new StudentTestSessionQueryParameters(request.TestSessionId) { StudentId = _executionContextService.GetCurrentUserId(), }; var testSession = await _unitOfWork.GetSingle(queryParameters); return(await _stateManager.GetAvailableTriggers(testSession)); }
public async Task ThrowIfCannotAnswer(Guid studentTestSessionId) { var queryParameters = new StudentTestSessionQueryParameters { Id = studentTestSessionId, State = StudentTestSessionState.Started, }; if (!await _unitOfWork.Any(queryParameters)) { throw new CodedException(ErrorCode.StudentTestSessionEnded); } }
public async Task <Unit> Handle(FinalizeStudentTestSessionRequest request, CancellationToken cancellationToken) { var queryParameters = new StudentTestSessionQueryParameters { Ids = request.StudentTestSessionIds, State = StudentTestSessionState.Started, IsReadOnly = false, }; var sessions = await _unitOfWork.GetAll(queryParameters); if (sessions.IsNullOrEmpty()) { return(default);
public async Task <Unit> Handle(StudentTestSessionStateTransitionRequest request, CancellationToken cancellationToken) { var queryParameters = new StudentTestSessionQueryParameters(request.StudentTestSessionId) { IsReadOnly = false, }; StudentTestSession session = await _unitOfWork.GetSingle(queryParameters); await _stateManager.Process(session, request.Trigger, request.SerializedData); await _unitOfWork.Update(session); await _unitOfWork.Commit(); return(Unit.Value); }
public async Task StartAssessmentPhase(TestSession testSession) { var queryParameters = new StudentTestSessionQueryParameters { TestSessionId = testSession.Id, ExcludedStates = new[] { StudentTestSessionState.Ended }, IsReadOnly = false, }; IReadOnlyCollection <StudentTestSession> studentTestSessions = await _unitOfWork.GetAll(queryParameters); using var scope = TransactionsFactory.Create(); await _studentTestSessionService.EndTests(studentTestSessions); await _testSessionAssessmentService.CreateAssessmentQuestions(testSession.Assessment); scope.Complete(); }
public async Task <Unit> Handle(FinalizeStudentsTestSessionsRequest request, CancellationToken cancellationToken) { var queryParameters = new StudentTestSessionQueryParameters { State = StudentTestSessionState.Started, MoreOrGreaterThanShouldEndAt = _dateTimeProvider.UtcNow, }; var sessionsData = await _unitOfWork.GetAll(queryParameters, session => new { StudentTestSessionId = session.Id, session.TestSession.InstructorId, }); if (sessionsData.IsNullOrEmpty()) { return(default);