public function actionAddInstitution()
 {
     $institution = new Institution();
     $address = new Address();
     $errors = array();
     if (!empty($_POST)) {
         $institution->attributes = $_POST['Institution'];
         if (!$institution->validate()) {
             $errors = $institution->getErrors();
         }
         $address->attributes = $_POST['Address'];
         if ($address->validate()) {
             $errors = array_merge($errors, $address->getErrors());
         }
         if (empty($errors)) {
             if (!$institution->save()) {
                 throw new Exception("Unable to save institution: " . print_r($institution->getErrors(), true));
             }
             if (!$address->save()) {
                 throw new Exception("Unable to save institution address: " . print_r($address->getErrors(), true));
             }
             $institution->addAddress($address);
             if (!$institution->contact->save()) {
                 throw new Exception("Institution contact could not be saved: " . print_r($institution->contact->getErrors(), true));
             }
             Audit::add('admin-Institution', 'add', $institution->id);
             $this->redirect(array('/admin/editInstitution?institution_id=' . $institution->id));
         }
     }
     $this->render('/admin/addinstitution', array('institution' => $institution, 'address' => $address, 'errors' => @$errors));
 }