public Task <CreatedEntityResponse> Handle(CreateTestVariantRequest request, CancellationToken cancellationToken) { TestVariantSaveDataDto data = request.Data; using var scope = TransactionsFactory.Create(); return(Task.FromResult(new CreatedEntityResponse())); }
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(); }
private async Task OnStartTransition( StateTransitionContext <TEntity> context, StateMachine <string, string> .Transition transition, StateConfiguration <TEntity> configuration) { context.SourceState = transition.Source; context.TargetState = transition.Destination; context.Trigger = transition.Trigger; var handlers = configuration.Handlers .Select(t => _serviceProvider.GetService(t)) .Cast <IStateTransitionHandler <TEntity> >(); using var transaction = TransactionsFactory.Create(); foreach (var stateTransitionHandler in handlers) { await stateTransitionHandler.Transit(context); } transaction.Complete(); }
public async Task EndTests(IReadOnlyCollection <StudentTestSession> studentTestSessions) { using var scope = TransactionsFactory.Create(); foreach (var session in studentTestSessions.Where(e => e.State == StudentTestSessionState.Started)) { await _stateManager.Process(session, StudentTestSessionTriggers.EndTest); } await _unitOfWork.Commit(); foreach (var session in studentTestSessions.Where(e => e.State == StudentTestSessionState.Pending)) { await _stateManager.Process(session, StudentTestSessionTriggers.OverdueTest); } await _unitOfWork.Commit(); scope.Complete(); }