protected function update_or_create_post(array $record)
 {
     if ($id = $this->match_existing_post($record)) {
         $this->update_post($id, $record);
         $this->updated++;
         $this->log[$this->reader->get_last_line_number_read() + 1] = sprintf(__('%s (post ID %d) updated.', 'tribe-events-calendar'), get_the_title($id), $id);
     } else {
         $id = $this->create_post($record);
         $this->created++;
         $this->log[$this->reader->get_last_line_number_read() + 1] = sprintf(__('%s (post ID %d) created.', 'tribe-events-calendar'), get_the_title($id), $id);
     }
 }
 public function render_admin_page_contents()
 {
     switch ($this->state) {
         case 'map':
             try {
                 $file = new TribeEventsImporter_FileReader(TribeEventsImporter_FileUploader::get_file_path());
             } catch (RuntimeException $e) {
                 $this->errors[] = __('The file went away. Please try again.', 'tribe-events-calendar');
                 $this->state = '';
                 return $this->render_admin_page_contents();
             }
             $header = $file->get_header();
             if (get_option('tribe_events_importer_has_header', 0) == 0) {
                 $letter = 'A';
                 $size = count($header);
                 $header = array();
                 for ($i = 0; $i < $size; $i++) {
                     $header[] = $letter++;
                 }
             }
             $import_type = get_option('tribe_events_import_type');
             $messages = $this->errors;
             include TribeEventsImporter_Plugin::path('admin-views/columns.php');
             break;
         case 'importing':
             $messages = $this->messages;
             include TribeEventsImporter_Plugin::path('admin-views/in-progress.php');
             break;
         case 'complete':
             $log = get_option('tribe_events_import_log');
             $skipped = get_option('tribe_events_import_failed_rows', array());
             include TribeEventsImporter_Plugin::path('admin-views/result.php');
             break;
         default:
             $messages = $this->errors;
             include TribeEventsImporter_Plugin::path('admin-views/import.php');
             break;
     }
 }