/**
  * Add a database to the knowledgebase
  */
 public function updateDatabaseAction()
 {
     $id = $this->request->getParam('id');
     $title = $this->request->requireParam('title', 'You must specify a title');
     $link = $this->request->requireParam('link', 'You must specify a link');
     $description = $this->request->getParam('description');
     $type = $this->request->getParam('type');
     $coverage = $this->request->getParam('coverage');
     $active = (bool) $this->request->getParam('active', false, false);
     $proxy = (bool) $this->request->getParam('proxy', false, false);
     $date_new_expiry = $this->request->getParam('date_new_expiry');
     $date_trial_expiry = $this->request->getParam('date_trial_expiry');
     $keywords = $this->request->getParam('keywords');
     $creator = $this->request->getParam('creator');
     $publisher = $this->request->getParam('publisher');
     $search_hints = $this->request->getParam('search_hints');
     $link_guide = $this->request->getParam('link_guide');
     $link_copyright = $this->request->getParam('link_copyright');
     $language = $this->request->getParam('language');
     $notes = $this->request->getParam('notes');
     $alternate_titles = $this->request->getParam('alternate_titles');
     // if an id came in, then we are editing
     // rather than adding, so fetch the database
     $database = null;
     if ($id != "") {
         $database = $this->knowledgebase->getDatabase($id);
     } else {
         $database = new Database();
     }
     $database->setType($type);
     $database->setCoverage($coverage);
     $database->setCreator($creator);
     $database->setDescription($description);
     $database->setLanguage($language);
     $database->setLink($link);
     $database->setLinkGuide($link_guide);
     $database->setNotes($notes);
     $database->setPublisher($publisher);
     $database->setSearchHints($search_hints);
     $database->setTitle($title);
     $database->setAlternateTitles($alternate_titles);
     $database->setKeywords($keywords);
     if ($date_new_expiry != null) {
         $date_time = new \DateTime($date_new_expiry);
         $database->setDateNewExpiry($date_time);
     }
     if ($date_trial_expiry != null) {
         $date_time = new \DateTime($date_trial_expiry);
         $database->setDateTrialExpiry($date_time);
     } else {
         $database->removeDateTrialExpiry();
     }
     $database->setProxy($proxy);
     $database->setActive($active);
     $this->knowledgebase->updateDatabase($database);
     $this->clearDatabaseCache();
     $params = array('controller' => $this->request->getParam('controller'), 'action' => 'database', 'id' => $database->getId());
     return $this->redirectTo($params);
 }