public function handle($criteria, $data) { $entity = $this->entityFactory->create($data); if ($this->eventManager) { $event = $this->eventManager->createEvent('create.pre', $entity, $data); $this->eventManager->trigger($event); } $this->repository->add($entity); if ($this->eventManager) { $event = $this->eventManager->createEvent('create.post', $entity, $data); $this->eventManager->trigger($event); } return $entity; }
/** * @return EntityInterface */ public function handle($filter, $changes) { /** @var CriteriaInterface $criteria */ $criteria = $this->repository->createCriteria($filter); $entity = $this->repository->find($criteria); if (!$entity) { throw new EntityNotFoundException("Entity does not found."); } if ($this->eventManager) { $event = $this->eventManager->createEvent('delete.pre', $entity); $this->eventManager->trigger($event); } $this->repository->remove($entity); if ($this->eventManager) { $event = $this->eventManager->createEvent('delete.post', $entity); $this->eventManager->trigger($event); } return $entity; }