public function onPreSave(GenericEvent $event)
 {
     /** @var WebCounter $counter */
     $counter = $event->getSubject();
     $provider = $this->counter_management_manager->getProvider($counter->getTypeKey());
     /** Если указан флаг создания счетчика на сервере отправим необходимые запросы */
     if ($counter->isNew() && !$counter->getNumber() && $provider->getRemoteRepository()) {
         $remoteCounter = $provider->getRemoteRepository()->push($counter->getName(), $counter->getSite());
         $counter->setNumber($remoteCounter->getId());
         $goals = WebCounterGoalQuery::create()->find();
         /** @var WebCounterGoal $goal */
         foreach ($goals as $key => $goal) {
             $provider->getRemoteRepository()->addGoal($remoteCounter, $goal->getName(), $goal->getAlias(), $goal->getAction(), $key + 1);
         }
     }
 }
 public function installGoalsAction($id, Request $request)
 {
     $object = $this->admin->getObject($id);
     $provider = $this->get('counter_management.manager')->getProvider($object->getTypeKey());
     if (!$object->isNew() && $object->getNumber() && $provider->getRemoteRepository()) {
         $goals = WebCounterGoalQuery::create()->find();
         $counter = $provider->getRemoteRepository()->getCounter($object->getNumber());
         if ($counter) {
             /** @var WebCounterGoal $goal */
             foreach ($goals as $key => $goal) {
                 if ($provider->getRemoteRepository()->hasGoal($counter, $goal) === false) {
                     $provider->getRemoteRepository()->addGoal($counter, $goal->getName(), $goal->getAlias(), $goal->getAction(), $key + 1);
                 }
             }
         }
         $request->getSession()->getFlashBag()->add("success", "Все цели установлены");
     } else {
         $request->getSession()->getFlashBag()->add("error", "Не удалось установить цели");
     }
     return $this->redirectTo($object);
 }