public function delete(CategoryDeleteEvent $event, $eventName, EventDispatcherInterface $dispatcher)
    {
        if (null !== $category = CategoryQuery::create()->findPk($event->getCategoryId())) {
            $con = Propel::getWriteConnection(CategoryTableMap::DATABASE_NAME);
            $con->beginTransaction();

            try {
                $fileList = ['images' => [], 'documentList' => []];

                // Get category's files to delete after category deletion
                $fileList['images']['list'] = CategoryImageQuery::create()
                    ->findByCategoryId($event->getCategoryId());
                $fileList['images']['type'] = TheliaEvents::IMAGE_DELETE;

                $fileList['documentList']['list'] = CategoryDocumentQuery::create()
                    ->findByCategoryId($event->getCategoryId());
                $fileList['documentList']['type'] = TheliaEvents::DOCUMENT_DELETE;

                // Delete category
                $category
                    ->setDispatcher($dispatcher)
                    ->delete($con);

                $event->setCategory($category);

                // Dispatch delete category's files event
                foreach ($fileList as $fileTypeList) {
                    foreach ($fileTypeList['list'] as $fileToDelete) {
                        $fileDeleteEvent = new FileDeleteEvent($fileToDelete);
                        $dispatcher->dispatch($fileTypeList['type'], $fileDeleteEvent);
                    }
                }

                $con->commit();
            } catch (\Exception $e) {
                $con->rollback();
                throw $e;
            }
        }
    }
public function delete(CategoryDeleteEvent $event, $eventName, EventDispatcherInterface $dispatcher)
    {
        if (null !== $category = CategoryQuery::create()->findPk($event->getCategoryId())) {
            $con = Propel::getWriteConnection(CategoryTableMap::DATABASE_NAME);
            $con->beginTransaction();

            try {
                $fileList = ['images' => [], 'documentList' => []];

                // Get category's files to delete after category deletion
                $fileList['images']['list'] = CategoryImageQuery::create()
                    ->findByCategoryId($event->getCategoryId());
                $fileList['images']['type'] = TheliaEvents::IMAGE_DELETE;

                $fileList['documentList']['list'] = CategoryDocumentQuery::create()
                    ->findByCategoryId($event->getCategoryId());
                $fileList['documentList']['type'] = TheliaEvents::DOCUMENT_DELETE;

                // Delete category
                $category
                    ->setDispatcher($dispatcher)
                    ->delete($con);

                $event->setCategory($category);

                // Dispatch delete category's files event
                foreach ($fileList as $fileTypeList) {
                    foreach ($fileTypeList['list'] as $fileToDelete) {
                        $fileDeleteEvent = new FileDeleteEvent($fileToDelete);
                        $dispatcher->dispatch($fileTypeList['type'], $fileDeleteEvent);
                    }
                }

                $con->commit();
            } catch (\Exception $e) {
                $con->rollback();
                throw $e;
            }
        }
    }
public function delete ( CategoryDeleteEvent $ event , $ eventName , EventDispatcherInterface $ dispatcher ) { if ( null !== $ category = CategoryQuery :: create ( ) -> findPk ( $ event -> getCategoryId ( ) ) ) { $ con = Propel :: getWriteConnection ( CategoryTableMap :: DATABASE_NAME ) ; $ con -> beginTransaction ( ) ; try { $ fileList = [ 'images' => [ ] , 'documentList' => [ ] ] ; // Get category's files to delete after category deletion $ fileList [ 'images' ] [ 'list' ] = CategoryImageQuery :: create ( ) -> findByCategoryId ( $ event -> getCategoryId ( ) ) ; $ fileList [ 'images' ] [ 'type' ] = TheliaEvents :: IMAGE_DELETE ; $ fileList [ 'documentList' ] [ 'list' ] = CategoryDocumentQuery :: create ( ) -> findByCategoryId ( $ event -> getCategoryId ( ) ) ; $ fileList [ 'documentList' ] [ 'type' ] = TheliaEvents :: DOCUMENT_DELETE ; // Delete category $ category -> setDispatcher ( $ dispatcher ) -> delete ( $ con ) ; $ event -> setCategory ( $ category ) ; // Dispatch delete category's files event foreach ( $ fileList as $ fileTypeList ) { foreach ( $ fileTypeList [ 'list' ] as $ fileToDelete ) { $ fileDeleteEvent = new FileDeleteEvent ( $ fileToDelete ) ; $ dispatcher -> dispatch ( $ fileTypeList [ 'type' ] , $ fileDeleteEvent ) ; } } $ con -> commit ( ) ; } catch ( \ Exception $ e ) { $ con -> rollback ( ) ; throw $ e ; } } }
Delete a category entry

@param \Thelia\Core\Event\Category\CategoryDeleteEvent $event
@param $eventName
@param EventDispatcherInterface $dispatcher
@throws \Exception
Delete a category entry