protected function isExpired(DeliveryExecution $deliveryExecution)
    {
        $result = false;
        $executionState = $deliveryExecution->getState()->getUri();

        if (in_array($executionState, [
                DeliveryExecutionState::STATE_PAUSED,
                DeliveryExecutionState::STATE_ACTIVE,
            ])
        ) {
            /** @var \oat\taoProctoring\model\implementation\DeliveryExecutionStateService $deliveryExecutionStateService */
            $deliveryExecutionStateService = $this->getServiceLocator()->get(DeliveryExecutionStateService::SERVICE_ID);

            if ($executionState === DeliveryExecutionState::STATE_ACTIVE) {
                $lastTestTakersEvent = $this->getLastTestTakersEvent($deliveryExecution);
                $lastEventTime = (new DateTimeImmutable())->setTimestamp($lastTestTakersEvent['created_at']);
            } else {
                $lastEventTime = $this->getLastPause($deliveryExecution);
            }

            if ($lastEventTime && $deliveryExecutionStateService->hasOption(DeliveryExecutionStateService::OPTION_TERMINATION_DELAY_AFTER_PAUSE)) {
                $delay = $deliveryExecutionStateService->getOption(DeliveryExecutionStateService::OPTION_TERMINATION_DELAY_AFTER_PAUSE);
                $result = ($lastEventTime->add(new DateInterval($delay)) < (new DateTimeImmutable('now')));
            }
        }

        return $result;
    }
protected function isExpired(DeliveryExecution $deliveryExecution)
    {
        $result = false;
        $executionState = $deliveryExecution->getState()->getUri();

        if (in_array($executionState, [
                DeliveryExecutionState::STATE_PAUSED,
                DeliveryExecutionState::STATE_ACTIVE,
            ])
        ) {
            /** @var \oat\taoProctoring\model\implementation\DeliveryExecutionStateService $deliveryExecutionStateService */
            $deliveryExecutionStateService = $this->getServiceLocator()->get(DeliveryExecutionStateService::SERVICE_ID);

            if ($executionState === DeliveryExecutionState::STATE_ACTIVE) {
                $lastTestTakersEvent = $this->getLastTestTakersEvent($deliveryExecution);
                $lastEventTime = (new DateTimeImmutable())->setTimestamp($lastTestTakersEvent['created_at']);
            } else {
                $lastEventTime = $this->getLastPause($deliveryExecution);
            }

            if ($lastEventTime && $deliveryExecutionStateService->hasOption(DeliveryExecutionStateService::OPTION_TERMINATION_DELAY_AFTER_PAUSE)) {
                $delay = $deliveryExecutionStateService->getOption(DeliveryExecutionStateService::OPTION_TERMINATION_DELAY_AFTER_PAUSE);
                $result = ($lastEventTime->add(new DateInterval($delay)) < (new DateTimeImmutable('now')));
            }
        }

        return $result;
    }
protected function isExpired ( DeliveryExecution $ deliveryExecution ) { $ result = false ; $ executionState = $ deliveryExecution -> getState ( ) -> getUri ( ) ; if ( in_array ( $ executionState , [ DeliveryExecutionState :: STATE_PAUSED , DeliveryExecutionState :: STATE_ACTIVE , ] ) ) { /** @var \oat\taoProctoring\model\implementation\DeliveryExecutionStateService $deliveryExecutionStateService */ $ deliveryExecutionStateService = $ this -> getServiceLocator ( ) -> get ( DeliveryExecutionStateService :: SERVICE_ID ) ; if ( $ executionState === DeliveryExecutionState :: STATE_ACTIVE ) { $ lastTestTakersEvent = $ this -> getLastTestTakersEvent ( $ deliveryExecution ) ; $ lastEventTime = ( new DateTimeImmutable ( ) ) -> setTimestamp ( $ lastTestTakersEvent [ 'created_at' ] ) ; } else { $ lastEventTime = $ this -> getLastPause ( $ deliveryExecution ) ; } if ( $ lastEventTime && $ deliveryExecutionStateService -> hasOption ( DeliveryExecutionStateService :: OPTION_TERMINATION_DELAY_AFTER_PAUSE ) ) { $ delay = $ deliveryExecutionStateService -> getOption ( DeliveryExecutionStateService :: OPTION_TERMINATION_DELAY_AFTER_PAUSE ) ; $ result = ( $ lastEventTime -> add ( new DateInterval ( $ delay ) ) < ( new DateTimeImmutable ( 'now' ) ) ) ; } } return $ result ; }
Checks if delivery execution was expired after pausing

@param DeliveryExecution $deliveryExecution
@return bool
@throws
Checks if delivery execution was expired after pausing