/**
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datagrid = $event->getDatagrid();
     $datasource = $datagrid->getDatasource();
     if ($datasource instanceof OrmDatasource) {
         $parameters = $datagrid->getParameters();
         $userId = $parameters->get('userId');
         $this->emailGridHelper->updateDatasource($datasource, $userId);
         $this->emailGridHelper->handleRefresh($parameters, $userId);
     }
 }
 /**
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datagrid = $event->getDatagrid();
     $datasource = $datagrid->getDatasource();
     if ($datasource instanceof OrmDatasource) {
         $parameters = $datagrid->getParameters();
         $entityClass = $this->entityRoutingHelper->decodeClassName($parameters->get('entityClass'));
         $entityId = $parameters->get('entityId');
         $this->emailGridHelper->updateDatasource($datasource, $entityId, $entityClass);
         if ($this->emailGridHelper->isUserEntity($entityClass)) {
             $this->emailGridHelper->handleRefresh($parameters, $entityId);
         }
     }
 }
 public function testUpdateDatasourceNoEntityId()
 {
     $qb = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock();
     $datasource = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datasource\\Orm\\OrmDatasource')->disableOriginalConstructor()->getMock();
     $datasource->expects($this->any())->method('getQueryBuilder')->will($this->returnValue($qb));
     $this->activityManager->expects($this->any())->method('addFilterByTargetEntity')->with($this->identicalTo($qb), $this->userClass, -1);
     $this->helper->updateDatasource($datasource, null);
 }
 /**
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datagrid = $event->getDatagrid();
     $datasource = $datagrid->getDatasource();
     if ($datasource instanceof OrmDatasource) {
         $parameters = $datagrid->getParameters();
         $userId = $parameters->get('userId');
         $queryBuilder = $datasource->getQueryBuilder();
         $this->emailQueryFactory->applyAcl($queryBuilder);
         $this->emailQueryFactory->prepareQuery($queryBuilder);
         // bind 'origin_ids' parameter
         $originIds = [];
         $emailOrigins = $this->emailGridHelper->getEmailOrigins($userId);
         foreach ($emailOrigins as $emailOrigin) {
             $originIds[] = $emailOrigin->getId();
         }
         $queryBuilder->setParameter('origin_ids', $originIds);
     }
 }