?? GreyFile — Mystic File Browser

Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Controller/



?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src

?? Viewing: ExchangeController.php

<?php

namespace Application\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Laminas\Mail\Message;
use Laminas\Mime;
use Laminas\Mail\Transport\Sendmail as SendmailTransport;
use Exception;

class ExchangeController extends AbstractActionController {

    const ROUTE_ADMIN = 'admin';
    const ROUTE_ADMIN_EXCHANGE = 'admin/exchange';

    const ROUTE_INFOS = 'exchange/infos';

    /**
     * @var Doctrine\ORM\EntityManager

      protected $em;

      public function setEntityManager(EntityManager $em) {
      $this->em = $em;
      }

      public function getEntityManager() {
      if (null === $this->em) {
      $this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
      }
      return $this->em;
      }

      public function getServiceManager() {
      return $this->serviceManager;
      }

      public function setServiceManager(Laminas\ServiceManager\ServiceManager $serviceManager) {
      $this->serviceManager = $serviceManager;
      return $this;
      }
     * 
     */
    public function getEntityManager() {
        return $this->entityManager;
//        if (null === $this->em) {
//            $this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
//        }
//        return $this->em;
    }

//
//    public function getServiceManager() {
//        return $this->serviceManager;
//    }
//
//    public function setServiceManager(Laminas\ServiceManager\ServiceManager $serviceManager) {
//        $this->serviceManager = $serviceManager;
//        return $this;
//    }

    /**
     * Entity manager.
     * @var Doctrine\ORM\EntityManager
     */
    private $entityManager;

    /**
     * Auth manager.
     * @var User\Service\AuthManager
     */
    private $authManager;

    /**
     * User manager.
     * @var User\Service\UserManager
     */
    private $userManager;

    /**
     * config
     * @var array
     */
    private $config;

    /**
     * Constructor.
     */
    public function __construct($entityManager, $authManager, $userManager, $config) {
//    public function __construct($entityManager, $authManager, $userManager, $config) {

        $this->entityManager = $entityManager;
        $this->authManager = $authManager;
        $this->userManager = $userManager;
        $this->config = $config;
    }

    public function getConfig() {
        return $this->config;
    }

    public function infosAction() {

        $exchangeId = $this->params()->fromRoute('exchange', null);

        if (empty($exchangeId)) {
            return false;
        }
        $entityManager = $this->getEntityManager();
        /* @var $entityManager \Doctrine\ORM\EntityManager */
        $mapperExchange = new \Application\Mapper\ExchangeMapper($entityManager);


        $exchange = $mapperExchange->findById($exchangeId);

        if (empty($exchange)) {
            return false;
        }

        $responseArray = [
            'nom' => $exchange->getName(),
            'adresse' => $exchange->getAdresse(),
            'site' => $exchange->getSite(),
            ];
        $response = $this->getResponse();
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
        $response->setContent(json_encode($responseArray));

        return $response;
    }

    public function indexAction() {

    
    //echo 'exchange'; exit;
    

        if ($user = $this->currentUser()) {
            
        } else {
            return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
        }
        
//        if (!$this->access('profile.any.view') && 
//            !$this->access('profile.own.view', ['user'=>$user])) {
//            return $this->redirect()->toRoute('not-authorized');
//        }







       
        

        
        /* Array with number item authorize per page */
        $config = $this->getConfig();
        $configNumber = $config['number_per_page_authorize'];
        /* Init query option */
        $queryOption = array();

        /* Page number default */
        $queryOption['page'] = $pageNumber = $this->params()->fromQuery('page', '1');

        /* Display Table or List */
        $queryOption['display'] = $displayState = $this->params()->fromQuery('display', 'table');

        /* Number element display per page */
        $nb_element_per_page = $this->params()->fromQuery('nb_element_per_page', '30');
        $queryOption['nb_element_per_page'] = $_SESSION['countPerPage'] = in_array($nb_element_per_page, array('30', '60', '90')) ? $nb_element_per_page : '30';
        /* List Sort by field */
        $sort_by = $this->params()->fromQuery('sort_by', 'datetimeTransaction');

        $colTable = array(
            
            'id' => array(
                'label' => 'Id',
                'class' => 'col-sm-2',
                'allowOrder' => true,
            ),
            'logo' => array(
                'label' => 'Logo',
                'class' => 'col-sm-1',
                'allowOrder' => true,
            ),
            'name' => array(
                'label' => 'Nom',
                'class' => 'col-sm-1',
                'allowOrder' => true,
            ),
//            'type' => array(
//                'label' => 'Type',
//                'class' => 'col-sm-2',
//                'allowOrder' => true,
//            ),
//            'pair' => array(
//                'label' => 'Pair',
//                'class' => 'col-sm-2',
//                'allowOrder' => true,
//            ),
            'enable' => array(
                'label' => 'Activé',
                'class' => 'col-sm-2',
                'allowOrder' => true,
            ),
            'selectable' => array(
                'label' => 'Sélection possible',
                'class' => 'col-sm-1',
                'allowOrder' => true,
            ),
            'view_disabled' => array(
                'label' => 'Non affiché',
                'class' => 'col-sm-1',
                'allowOrder' => true,
            ),
            'api_enabled' => array(
                'label' => 'API activé',
                'class' => 'col-sm-2',
                'allowOrder' => true,
            ),
            'csv_enabled' => array(
                'label' => 'CSV activé',
                'class' => 'col-sm-2',
                'allowOrder' => true,
            ),
            'site' => array(
                'label' => 'Site',
                'class' => 'col-sm-2',
                'allowOrder' => true,
            ),
        
            
//            'action' => array(
//                'label' => 'Action',
//                'class' => 'col-sm-1',
//                'allowOrder' => false,
//            ),
        );

//        $queryOption['sort_by'] = in_array($sort_by, array('id', 'titre', 'contenu', 'dateCreation', 'dateModification', 'statut')) ? $sort_by : 'id';
        //$queryOption['sort_by'] = in_array($sort_by, array('id', 'code', 'prescripteur', 'coordinateur', 'dateCreation', 'dateDepot', 'dateDelivrance', 'createdBy', 'statut')) ? $sort_by : 'id';

        $queryOption['sort_by'] = 'dateTransaction';
        
        /* List order ASC or DESC */
        $sort = $this->params()->fromQuery('sort', 'ASC');
        $queryOption['sort'] = in_array($sort, array('ASC', 'DESC')) ? $sort : 'ASC';

        /* Form search */
        $formSearch = new \Application\Form\SearchForm();

        $request = $this->getRequest();
        /* @var $request \Laminas\Http\Request */

        $filterOption = null;

        if ($request->isGet() && is_string($request->getQuery('search'))) {
            $data = $request->getQuery()->toArray();
            $formSearch->setInputFilter(new \Application\InputFilter\SearchInputFilter());
            $formSearch->setData($data);

            if ($formSearch->isValid()) {
                $queryOption['search'] = $data['search'];
            }
        }

        $orderOption = array(
            'sort_by' => $queryOption['sort_by'],
            'sort' => $queryOption['sort'],
        );

        /* Création Paginator */
        //$criteria = array('statut' => 1);
        $search = '';
        if (isset($queryOption['search'])) {
            //$criteria = array_merge($criteria, array('contenu' => "%{$queryOption['search']}%"));
            $search = $queryOption['search'];
        }
        $orderBy = array($orderOption['sort_by'] => $orderOption['sort']);

        $entityManager = $this->getEntityManager();
        /* @var $entityManager \Doctrine\ORM\EntityManager */
       $mapperExchange = new \Application\Mapper\ExchangeMapper($entityManager);


        $parametersManager = array(
            'user' => $user,
            'sort_by' => $queryOption['sort_by'],
            'sort' => $queryOption['sort'],
            'search' => isset($queryOption['search']) ? $queryOption['search'] : null
        );


        
        
        
        $paginator = $mapperExchange->getList($parametersManager, true);

        
         //$allData = $ledgioMapper->getListByIdUser($user->getId(), $parametersManager, false);
         //var_dump($allData);
         
//         var_dump($warningLedgio);
//         exit;
        
         
////echo 'toto';
//        exit;

        /* Option affichage paginator */
        $paginator->setItemCountPerPage((int) $queryOption['nb_element_per_page']);
        $paginator->setCurrentPageNumber((int) $queryOption['page']);
        /* Verify current page < to number pages */
        /* set is not allow after getting pages */
        $numberPages = $paginator->getPages()->pageCount;
        
       
        if ((int) $queryOption['page'] > $numberPages) {
            $queryOption['page'] = '1';
        }

       



        $this->layout('layout/layout-ledgio');

        return new ViewModel(array(
            'numberPages' => $numberPages,
            'paginator' => $paginator,
            //'warningLedgio' => $warningLedgio,
            'queryOption' => $queryOption,
            'colTable' => $colTable,
            'formSearch' => $formSearch,
        ));
    }

    public function apiAction() {
        $api = new Binance\API("<api key>", "<secret>");
        $history = $api->history("BNBBTC");
        print_r($history);
    }

    public function uploadAction() {

        if ($user = $this->currentUser()) {
            
        } else {
            return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
        }

        // Vérification utilisateur bien authentifié
//        if ($this->zfcUserAuthentication()->hasIdentity()) {
//            $user = $this->zfcUserAuthentication()->getIdentity();
//            //var_dump($user);
//        } else {
//            return $this->redirect()->toRoute('zfcuser', array('action' => 'login'));
//        }
//        \Doctrine\Common\Util\Debug::dump($user,3);
//        $userMapper = new \Application\Mapper\UserMapper($this->getEntityManager());
//        $userNew = $userMapper->findById($user->getId());
//        \Doctrine\Common\Util\Debug::dump($userNew,3); 
//        
//        var_dump($user === $userNew);
//        
//        exit;
        /*
         * Service upload
         */

//        $config = $this->getServiceLocator()->get('config');
        $config = $this->getConfig();
        $uploadPath = $config['upload-path'];


        $uploadPath = $uploadPath . DIRECTORY_SEPARATOR . $user->getId() . DIRECTORY_SEPARATOR . 'input' . DIRECTORY_SEPARATOR;

        $exchangeName = '';

        if (!empty($_REQUEST) && !empty($_REQUEST['exchange-name'])) {
            $exchangeName = $_REQUEST['exchange-name'];
        }

        $exchangeMapper = $this->getEntityManager()->getRepository(\Application\Entity\Exchange::class);
        $exchangeFind = $exchangeMapper->findByName($exchangeName);

        $responseArray['error'] = [];
        $responseArray['error']['messages'] = [];



        if (empty($exchangeFind)) {
            //var_dump($exchangeName);
            $responseArray['error']['messages'][] = array('header' => 'Exchange inconnu', 'body' => 'Veuillez recharger la page', 'footer' => '');
        } else {
            $responseArray['exchange'] = $exchangeName;
        }
//echo 'titi';






        if (count($responseArray['error']['messages']) === 0) {



            $tmpArray = explode('-', $exchangeName);

            if (count($tmpArray) > 1) {
                $serviceName = '';
                foreach ($tmpArray as $strTmp) {
                    $serviceName .= ucfirst($strTmp);
                }
            } else {
                $serviceName = ucfirst($exchangeName);
            }
            $countFile = 0;

            $classNameService = '\Application\Service\ExchangeService\\' . ucfirst($serviceName) . 'Service';
//var_dump($classNameService); 
//var_dump(class_exists($classNameService)); exit;
            if (!class_exists($classNameService)) {
                $responseArray['error']['messages'][] = array('header' => 'Service non disponible', 'body' => 'Service ' . $serviceName . ' non disponible', 'footer' => '');

                goto returnResponse;
            }

            $uploadPath = $uploadPath . strtolower($exchangeName) . DIRECTORY_SEPARATOR;

            $ServiceUpload = new \Application\Service\UploadHandler($user->getId(), array('upload_dir' => $uploadPath));

            $arrayFileUploaded = $ServiceUpload->arrayFileUploaded;

            $responseArray = array_merge($responseArray, $ServiceUpload->get(false));

            // $responseArray['exchange'] = $exchangeName;
            $arrayErrorMessages = $ServiceUpload->arrayErrorMessages;
            $serviceExchange = null;







//            var_dump($arrayErrorMessages);
//            echo 'toto';
//        exit;
            if (!empty($arrayErrorMessages)) {
                foreach ($arrayErrorMessages as $errorMessage) {
                    $responseArray['error']['messages'][] = array('header' => $errorMessage['header'], 'body' => $errorMessage['body'], 'footer' => $errorMessage['footer']);
                }
            }
            //var_dump($ServiceUpload->get_response());
//        var_dump($responseArray);
//        exit;
            /* */




            if (!empty($arrayFileUploaded)) {
                $countLineRecorded = 0;
                foreach ($arrayFileUploaded as $fileUploaded) {

//                    try {
                    //var_dump(class_exists($classNameService));

                    $serviceExchange = new $classNameService($fileUploaded, $user, $this->getEntityManager());
                    $countLineRecorded = $countLineRecorded + $serviceExchange->getCountLineRecorded();
                    //var_dump($serviceExchange); exit;
//                    } catch (Exception $ex) {
//                        $responseArray['error']['messages'][] = array('header' => 'Service non disponible', 'body' => 'Service ' . $serviceName . ' non disponible', 'footer' => '');
//
//                        goto returnResponse;
//                    }
//var_dump($fileUploaded);

                    if (!$serviceExchange->isValid()) {
                        $responseArray['error']['messages'][] = $serviceExchange->getErrorMessage();
//                    var_dump($responseArray);
//                    exit;
                        foreach ($responseArray['files'] as $index => $file) {
//                   var_dump($file->name);
//                   var_dump($fileUploaded);

                            if (strpos($fileUploaded, $file->name) !== false) {
//                        unset($responseArray['files'][$index]);
                                $obj = $responseArray['files'][$index];
                                $obj->error = $responseArray['error'];

                                //$responseArray['error']['messages'][] = array('header' => $errorMessage['title'], 'body' => $errorMessage['body'], 'footer' => $errorMessage['footer']);
                                $responseArray['files'][$index] = $obj;
                                unlink($fileUploaded);
                            }
                        }


                        continue;
                    } else {
                        $countFile++;
                    }
                }

                $ledgioService = new \Application\Service\LedgioService($user, $this->getEntityManager());

                $ledgioService->update();


                //echo 'toto'; exit;
            }
        }

        //var_dump($countFile); exit;
        if (count($responseArray['error']['messages']) === 0 && $countFile) {
            $responseArray['success']['messages'][] = array(
                'header' => 'Importation réussie',
                'body' => $countFile . ' fichier' . ($countFile > 1 ? 's' : '') . ' importé' . ($countFile > 1 ? 's' : '') . ' avec succès, Nombre total d\'enregistrements ' . ucfirst($exchangeName) . ' : ' . $countLineRecorded,
                'footer' => 'Nombre total d\'enregistrements : ' . $ledgioService->countLineRecorded
            );
        }

//        var_dump($responseArray);
//        exit;
        returnResponse:
        $response = $this->getResponse();
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
        $response->setContent(json_encode($responseArray));

        return $response;


        //exit;
//        return new ViewModel(array(
////            'listeActualites' => $listeActualites,
////            'listeOffresEmploi' => $listeOffresEmploi,
////            'nbIngenieurs' => $config['wdp-front-global']['nbIngenieurs'],
//        ));
    }

    public function uploadOkAction() {

        // Vérification utilisateur bien authentifié
        if ($this->zfcUserAuthentication()->hasIdentity()) {
            $user = $this->zfcUserAuthentication()->getIdentity();
            //var_dump($user);
        } else {
            return $this->redirect()->toRoute('zfcuser', array('action' => 'login'));
        }

        /*
         * Service upload
         */

//        $config = $this->getServiceLocator()->get('config');
//        $configDoc = $config['wdp-admin']['document'];
//        $uploadPath = $configDoc['upload-path'];

        $config - $this->getConfig();
        $uploadPath = $config['upload-path'];
        $uploadPath = $uploadPath . DIRECTORY_SEPARATOR . $user->getId() . DIRECTORY_SEPARATOR . 'input' . DIRECTORY_SEPARATOR;

        $exchangeName = '';
        //var_dump($_REQUEST);
        if (!empty($_REQUEST) && !empty($_REQUEST['exchange-name'])) {
            $exchangeName = $_REQUEST['exchange-name'];
        }

        $responseArray['exchange'] = \Application\Tool\TextTool::strToUrl($exchangeName);

        $responseArray['error'] = [];
        $responseArray['error']['messages'] = [];



        if (empty($exchangeName)) {
            //var_dump($exchangeName);
            $responseArray['error']['messages'][] = array('header' => 'Exchange inconnu', 'body' => 'Veuillez recharger la page', 'footer' => '');
        }
//echo 'titi';
//var_dump(count($responseArray['error']['messages']));
        if (count($responseArray['error']['messages']) === 0) {

            $uploadPath = $uploadPath . strtolower($exchangeName) . DIRECTORY_SEPARATOR;

            $ServiceUpload = new \Application\Service\UploadHandler($user->getId(), array('upload_dir' => $uploadPath));

            $arrayFileUploaded = $ServiceUpload->arrayFileUploaded;

            $responseArray = array_merge($responseArray, $ServiceUpload->get(false));

            $arrayErrorMessages = $ServiceUpload->arrayErrorMessages;

//            var_dump($arrayErrorMessages);
//            echo 'toto';
//        exit;
            if (!empty($arrayErrorMessages)) {
                foreach ($arrayErrorMessages as $errorMessage) {
                    $responseArray['error']['messages'][] = array('header' => $errorMessage['header'], 'body' => $errorMessage['body'], 'footer' => $errorMessage['footer']);
                }
            }
            //var_dump($ServiceUpload->get_response());
//        var_dump($responseArray);
//        exit;
            /* */
            //var_dump($ServiceUpload->exchangeName);
            $tmpArray = explode('-', $exchangeName);

            if (count($tmpArray) > 1) {
                $serviceName = '';
                foreach ($tmpArray as $strTmp) {
                    $serviceName .= ucfirst($strTmp);
                }
            } else {
                $serviceName = ucfirst($exchangeName);
            }
            $classNameService = '\Application\Service\\' . ucfirst($serviceName) . 'Service';
//var_dump(count($tmpArray));

            $countFile = 0;
            foreach ($arrayFileUploaded as $fileUploaded) {
                $serviceExchange = new $classNameService($fileUploaded, $user, $this->getEntityManager());
//var_dump($fileUploaded);

                if (!$serviceExchange->isValid()) {
                    $responseArray['error']['messages'][] = $serviceExchange->getErrorMessage();
//                    var_dump($responseArray);
//                    exit;
                    foreach ($responseArray['files'] as $index => $file) {
//                   var_dump($file->name);
//                   var_dump($fileUploaded);

                        if (strpos($fileUploaded, $file->name) !== false) {
//                        unset($responseArray['files'][$index]);
                            $obj = $responseArray['files'][$index];
                            $obj->error = $responseArray['error'];

                            //$responseArray['error']['messages'][] = array('header' => $errorMessage['title'], 'body' => $errorMessage['body'], 'footer' => $errorMessage['footer']);
                            $responseArray['files'][$index] = $obj;
                            unlink($fileUploaded);
                        }
                    }


                    continue;
                } else {
                    $countFile++;
                }
                $ledgioService = new \Application\Service\LedgioService($user, $this->getEntityManager());
                $ledgioService->update();
            }
        }



        if (count($responseArray['error']['messages']) === 0) {
            $responseArray['success']['messages'][] = array(
                'header' => 'Importation réussie',
                'body' => $countFile . ' fichier' . ($countFile > 1 ? 's' : '') . ' importé' . ($countFile > 1 ? 's' : '') . ' avec succès'
            );
            //$responseArray['success']['message'] = ;
        }

//        var_dump($responseArray);
//        exit;

        $response = $this->getResponse();
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
        $response->setContent(json_encode($responseArray));
        return $response;

        //exit;
//        return new ViewModel(array(
////            'listeActualites' => $listeActualites,
////            'listeOffresEmploi' => $listeOffresEmploi,
////            'nbIngenieurs' => $config['wdp-front-global']['nbIngenieurs'],
//        ));
    }

    public function deleteAction() {
        if ($user = $this->currentUser()) {
            
        } else {
            return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
        }
        if ($this->getRequest()->isPost()) {
            // Récupération des données du post
            $data = array_merge_recursive(
                    $this->getRequest()->getPost()->toArray()
            );



            if (empty($data['importId'])) {
                $responseArray['error']['messages'][] = array(
                    'header' => 'Formulaire non valide',
                    'body' => $message,
                    'footer' => '');

                goto returnResponse;
            }


            // find source import
            $mapperImport = new \Application\Mapper\ImportMapper($this->getEntityManager());


            $importInfos = $mapperImport->findById($data['importId']);
            if (empty($importInfos) || $importInfos->getUser() != $user) {
                $responseArray['error']['messages'][] = array(
                    'header' => 'Source inconnue',
                    'body' => 'Cette ressource n\'existe plus',
                    'footer' => '');

                goto returnResponse;
            }



            $query = $this->getEntityManager()->createQuery("DELETE FROM Application\Entity\Ledgio l WHERE l.user = " . $user->getId() . ' AND l.import = ' . $importInfos->getId());


//var_dump($query);
            /* @var $query \Doctrine\ORM\Query */
            //if ($query->execute()) {
            $query->execute();

            if ($importInfos->getSourceType() === 'csv') {
                $config = $this->getConfig();
                //$configDoc = $config['wdp-admin']['document'];

                $importInfos->getName();
                $uploadPath = $config['upload-path'];

                $uploadPath = $uploadPath . DIRECTORY_SEPARATOR . $user->getId() . DIRECTORY_SEPARATOR . 'input' . DIRECTORY_SEPARATOR;

                $uploadPath = $uploadPath . \Application\Tool\TextTool::strToUrl($importInfos->getExchange()->getName()) . DIRECTORY_SEPARATOR;

                $uploadPath = $uploadPath . $importInfos->getName();

                $unlinkResponse = unlink($uploadPath);
            }

//            if (is_file($uploadPath)) {
//                $rmdirResponse = rmdir($uploadPath);
//            }

            $mapperImport->delete($importInfos);


            $responseArray['id'] = $data['importId'];
            $responseArray['success']['messages'][] = array(
                'header' => 'Succès',
                'body' => 'Les données provenant de ' . $importInfos->getName() . ' ont été supprimées.');
            goto returnResponse;
        } else {
            //$messages = $formDelete->getMessages();
            foreach ($messages as $message) {
                $responseArray['error']['messages'][] = array(
                    'header' => 'Formulaire non valide',
                    'body' => 'Une erreur est survenue.',
                    'footer' => '');
            }
            goto returnResponse;
        }

        returnResponse:
        $response = $this->getResponse();
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
        $response->setContent(json_encode($responseArray));
        return $response;
    }

    public function deleteAllAction() {

//        if ($this->zfcUserAuthentication()->hasIdentity()) {
//            $user = $this->zfcUserAuthentication()->getIdentity();
//        } else {
//            return $this->redirect()->toRoute('zfcuser', array('action' => 'login'));
//        }

        if ($user = $this->currentUser()) {
            
        } else {
            return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
        }

        //$config = $this->getServiceLocator()->get('config');
        $config = $this->getConfig();
        //$configDoc = $config['wdp-admin']['document'];
        $uploadPath = $config['upload-path'];

        $uploadPath = $uploadPath . DIRECTORY_SEPARATOR . $user->getId() . DIRECTORY_SEPARATOR . 'input' . DIRECTORY_SEPARATOR;

//var_dump($_POST); exit;
        if ($this->getRequest()->isPost()) {
            // Récupération des données du post
            $data = array_merge_recursive(
                    $this->getRequest()->getPost()->toArray()
            );

            //$newExchangeLinker = new \Application\Entity\UserExchangeLinker();

            $formDelete = new \Application\Form\ImportationForm\DeleteAllFileByExchangeForm();
            $formDelete->setInputFilter(new \Application\InputFilter\ImportationForm\DeleteAllFileByExchangeFormInputFilter());

//            $form->setHydrator(new \DoctrineModule\Stdlib\Hydrator\DoctrineObject($entityManager, false))
//                    ->setObject(new \Application\Entity\UserExchangeLinker())
//                    ->setInputFilter(new \Application\InputFilter\ExchangeLinkerInputFilter());
            //$testEntity->themes;
            //var_dump($data);
            //$data['statut'] = '1';
            //new DoctrineEntity($serviceLocator->get('Doctrine\ORM\EntityManager'))
            //$form->bind($newExchangeLinker);
            $formDelete->setData($data);
//var_dump($data);
//exit;
            $responseArray['error']['messages'] = array();
            $responseArray['success']['messages'] = array();
            if ($formDelete->isValid()) {
                $dataForm = $formDelete->getData();
                $exchangeId = (int) $dataForm['exchange'];



//                if (empty($exchangeId)) {
//                    throw new Exception('Exchange inconnu');
//                }

                if ($exchangeId >= 0) {
                    $mapperExchange = new \Application\Mapper\ExchangeMapper($this->getEntityManager());
                    $findExchange = $mapperExchange->findById($exchangeId);
                    if (empty($findExchange)) {
                        $responseArray['error']['messages'][] = array(
                            'header' => 'Données non reconnues',
                            'body' => 'Impossible de supprimer ces données',
                            'footer' => ''
                        );
                    }

                    $responseArray['exchange'] = \Application\Tool\TextTool::strToUrl($findExchange->getName());

                    $uploadPath = $uploadPath . \Application\Tool\TextTool::strToUrl($findExchange->getName()) . DIRECTORY_SEPARATOR;
                }

//                else {
//                    $uploadPath = $uploadPath . 'exchange-generique' . DIRECTORY_SEPARATOR;
//                }

                $ledgioMapper = new \Application\Mapper\LedgioMapper($this->getEntityManager());

                $listTrade = $ledgioMapper->findByExchangeAndUser($findExchange, $user);


                if (is_dir($uploadPath) || !empty($listTrade)) {
                    if (is_dir($uploadPath)) {
                        $objects = scandir($uploadPath);
                        foreach ($objects as $object) {
                            if ($object != "." && $object != "..") {
                                if (!is_dir($uploadPath . "/" . $object)) {
                                    unlink($uploadPath . "/" . $object);
                                }
                            }
                        }
                    }

                    $rmdirResponse = rmdir($uploadPath);

                    if (!empty($listTrade)) {
                        try {


                            $query = $this->getEntityManager()->createQuery("DELETE FROM Application\Entity\Ledgio l WHERE l.user = " . $user->getId() . ' AND l.exchange = ' . $findExchange->getId());


//var_dump($query);
                            /* @var $query \Doctrine\ORM\Query */
                            //if ($query->execute()) {
                            $query->execute();
                            $responseArray['success']['messages'][] = array(
                                'header' => 'Succès',
                                'body' => 'Les données de trade de ' . $findExchange->getName() . ' ont été supprimées.');

                            //}
                            //var_dump($responseArray);
                            //exit;
                        } catch (Exception $e) {
                            $responseArray['error']['messages'][] = array(
                                'header' => 'Impossible de supprimer les données',
                                'body' => 'Impossible de supprimer les données, les données ont peut être déjà été supprimées, recharger la page.');
                        }
                    } else {
                        $responseArray['error']['messages'][] = array(
                            'header' => 'Impossible de supprimer les données',
                            'body' => 'Impossible de supprimer les données, les données ont peut être déjà été supprimées, recharger la page.');
                        //$responseArray['success']['exchange'] = \Application\Tool\TextTool::strToUrl($findExchange->getName());
                    }
                }
            } else {
                $messages = $formDelete->getMessages();
                foreach ($messages as $message) {
                    $responseArray['error']['messages'][] = array(
                        'header' => 'Formulaire non valide',
                        'body' => $message,
                        'footer' => '');
                }
            }
        }

        $response = $this->getResponse();
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
        $response->setContent(json_encode($responseArray));
        return $response;




        //exit;
    }

    public function showAction() {
        $this->layout('layout/layout-ledgio');

        $exchangeUri = $this->params()->fromQuery('exchange', 'null');

        var_dump($exchangeUri);
        return new ViewModel(array(
            'exchange' => $exchange

        ));
    }

}


??

??