public function updateAllEvent(ICalendarEvent $event)
 {
     try {
         $dbHandler = $this->getConnection();
         $data = array(CalendarManager::EVENT_KEY_ID => $event->getId(), CalendarManager::EVENT_KEY_SUBJECT => $event->getSubject(), CalendarManager::EVENT_KEY_LOCATION => $event->getLocation(), CalendarManager::EVENT_KEY_DESCRIPTION => $event->getDescription(), CalendarManager::EVENT_KEY_ISALLDAY => $event->getIsAllDay(), CalendarManager::EVENT_KEY_TYPE => $event->getType(), CalendarManager::EVENT_KEY_PRIVACY => $event->getPrivacy(), CalendarManager::EVENT_KEY_CREATORID => $event->getCreatorId(), CalendarManager::EVENT_KEY_CALENDARID => $event->getCalendarId());
         $sqlQuery = 'UPDATE ' . self::EVENT_TABLE_NAME . ' SET ';
         foreach ($data as $key => $value) {
             if ($key != CalendarManager::EVENT_KEY_ID) {
                 $sqlQuery .= $key . ' = :' . $key . ', ';
             }
         }
         $sqlQuery = substr($sqlQuery, 0, -2);
         $sqlQuery .= ' WHERE ' . CalendarManager::EVENT_KEY_ID . ' = :' . CalendarManager::EVENT_KEY_ID;
         $stmt = $dbHandler->prepare($sqlQuery);
         $stmt->execute($data);
     } catch (Exception $e) {
         $this->destroyConnection();
         throw new EyeDBException('An error occured while attempting to update event with ID "' . $event->getId() . '".', 0, $e);
     }
     $this->destroyConnection();
 }
 public function saveAllEvent(ICalendarEvent $event)
 {
     try {
         try {
             $this->getProvider()->retrieveCalendarById($event->getCalendarId());
             $this->setCalendarId($event->getCalendarId());
         } catch (EyeCalendarNotFoundException $e) {
             throw new EyeIntegrityConstraintViolationException('Cannot add an event to the unknown calendar "' . $event->getCalendarId() . '".', 0, $e);
         }
         try {
             $this->getProvider()->retrieveEventById($event->getId());
         } catch (EyeEventNotFoundException $e) {
             SecurityManager::getInstance()->checkWrite($this);
             $eventId = $this->getProvider()->createEvent($event);
             self::$Logger->info('CalendarEvent created: ' . $event);
             return $eventId;
         }
         // + prevent updating creatorId (and calendarId if insufficient permission on target one)
         SecurityManager::getInstance()->checkWrite($this);
         $this->getProvider()->updateAllEvent($event);
         self::$Logger->info('CalendarEvent updated: ' . $event);
     } catch (Exception $e) {
         throw new EyeCalendarException('An error occured while saving event with ID ' . $event->getId() . ' (' . $event->getSubject() . ').', 0, $e);
     }
 }