protected function saveCampaignInfo(SproutEmail_CampaignModel &$campaign)
 {
     $oldCampaignMailer = null;
     if (isset($campaign->id) && is_numeric($campaign->id)) {
         $campaignRecord = SproutEmail_CampaignRecord::model()->findById($campaign->id);
         if (!$campaignRecord) {
             throw new Exception(Craft::t('No campaign exists with the ID “{id}”', array('id' => $campaign->id)));
         }
         $oldCampaignMailer = $campaignRecord->mailer;
     } else {
         $campaignRecord = new SproutEmail_CampaignRecord();
     }
     // Set common attributes
     $campaignRecord->fieldLayoutId = $campaign->fieldLayoutId;
     $campaignRecord->name = $campaign->name;
     $campaignRecord->handle = $campaign->handle;
     $campaignRecord->type = $campaign->type;
     $campaignRecord->titleFormat = $campaign->titleFormat;
     $campaignRecord->hasUrls = $campaign->hasUrls;
     $campaignRecord->hasAdvancedTitles = $campaign->hasAdvancedTitles;
     $campaignRecord->mailer = $campaign->mailer;
     $campaignRecord->urlFormat = $campaign->urlFormat;
     $campaignRecord->template = $campaign->template;
     $campaignRecord->templateCopyPaste = $campaign->templateCopyPaste;
     $campaignRecord->validate();
     $campaign->addErrors($campaignRecord->getErrors());
     if (!$campaignRecord->hasErrors()) {
         $campaignRecord->save(false);
     }
     return $campaignRecord;
 }