public static function testStateChange(QtiTestChangeEvent $event) { /** @var DeliveryMonitoringService $service */ $service = ServiceManager::getServiceManager()->get(DeliveryMonitoringService::CONFIG_ID); $deliveryExecution = \taoDelivery_models_classes_execution_ServiceProxy::singleton()->getDeliveryExecution($event->getServiceCallId()); $data = $service->getData($deliveryExecution, false); $data->setTestSession($event->getSession()); $data->updateData([DeliveryMonitoringService::STATUS, DeliveryMonitoringService::CURRENT_ASSESSMENT_ITEM, DeliveryMonitoringService::START_TIME, DeliveryMonitoringService::END_TIME, DeliveryMonitoringService::REMAINING_TIME, DeliveryMonitoringService::EXTRA_TIME]); $success = $service->save($data); if (!$success) { \common_Logger::w('monitor cache for teststate could not be updated'); } }
/** * @param TestSessionMemento $sessionMemento */ protected function triggerEventChange(TestSessionMemento $sessionMemento) { $event = new QtiTestChangeEvent($this, $sessionMemento); if ($event instanceof ServiceLocatorAwareInterface) { $event->setServiceLocator($this->getServiceLocator()); } $this->getEventManager()->trigger($event); }