public function arrayToObject($hookData)
 {
     if (is_array($hookData) && count($hookData)) {
         $datetimeUtil = $this->container->get('campaignchain.core.util.datetime');
         $newData = $this->requestDataToPreSubmitData($hookData);
         $hook = new DateRepeat();
         $hook->setInterval($newData['interval']);
         if (isset($newData['interval_start_date'])) {
             $hook->setIntervalStartDate(new \DateTime($newData['interval_start_date'], new \DateTimeZone($newData['timezone'])));
         }
         $hook->setIntervalNextRun(new \DateTime($newData['interval_next_run'], new \DateTimeZone($newData['timezone'])));
         if (isset($newData['interval_end_occurrence'])) {
             $hook->setIntervalEndOccurrence($newData['interval_end_occurrence']);
         }
         if (isset($newData['interval_end_date'])) {
             $hook->setIntervalEndDate(new \DateTime($newData['interval_end_date'], new \DateTimeZone($newData['timezone'])));
         }
     }
     return $hook;
 }
 private function setDateRepeat(Campaign $repeatingCampaign, DateRepeat $dateRepeat)
 {
     $repeatingCampaign->setInterval($dateRepeat->getInterval());
     $repeatingCampaign->setIntervalStartDate($dateRepeat->getIntervalStartDate());
     $repeatingCampaign->setIntervalNextRun($dateRepeat->getIntervalNextRun());
     $repeatingCampaign->setIntervalEndDate($dateRepeat->getIntervalEndDate());
     $repeatingCampaign->setIntervalEndOccurrence($dateRepeat->getIntervalEndOccurrence());
     return $repeatingCampaign;
 }