/**
  * @return User
  */
 private function getUser()
 {
     if (!$this->user) {
         $this->user = UserHelper::getUser($this->deliveryExecution->getUserIdentifier());
     }
     return $this->user;
 }
 /**
  * Get last test takers event from delivery log
  * @param DeliveryExecution $deliveryExecution
  * @return array|null
  */
 protected function getLastTestTakersEvent(DeliveryExecution $deliveryExecution)
 {
     $deliveryLogService = ServiceManager::getServiceManager()->get(DeliveryLog::SERVICE_ID);
     $testTakerIdentifier = $deliveryExecution->getUserIdentifier();
     $events = array_reverse($deliveryLogService->get($deliveryExecution->getIdentifier()));
     $lastTestTakersEvent = null;
     foreach ($events as $event) {
         if ($event[DeliveryLog::CREATED_BY] === $testTakerIdentifier) {
             $lastTestTakersEvent = $event;
             break;
         }
     }
     return $lastTestTakersEvent;
 }
 /**
  * Update the collection of deliveries
  *
  * @param DeliveryExecution $deliveryExecution
  * @param string $old
  * @param string $new
  */
 public function updateDeliveryExecutionStatus(DeliveryExecution $deliveryExecution, $old, $new)
 {
     $userId = $deliveryExecution->getUserIdentifier();
     if ($old != null) {
         $oldReferences = $this->getDeliveryExecutionsByStatus($userId, $old);
         foreach (array_keys($oldReferences) as $key) {
             if ($oldReferences[$key]->getIdentifier() == $deliveryExecution->getIdentifier()) {
                 unset($oldReferences[$key]);
             }
         }
         $this->setDeliveryExecutions($userId, $old, $oldReferences);
     }
     $newReferences = $this->getDeliveryExecutionsByStatus($userId, $new);
     $newReferences[] = $deliveryExecution;
     $this->setDeliveryExecutions($userId, $new, $newReferences);
 }