function bindServiceEntityArray($serviceEntitys)
{
    $serviceDtos = new ServiceListDto();
    $serviceDtoArray = array();
    foreach ($serviceEntitys as $serviceEntity => $value) {
        array_push($serviceDtoArray, bindServiceEntity($value));
    }
    $serviceDtos->setServices($serviceDtoArray);
    return $serviceDtos;
}
function bindSessionServiceEntity($sessionServiceEntity)
{
    if ($sessionServiceEntity != null) {
        $sessionServiceDto = new SessionServiceDto();
        $sessionServiceDto->setSessionServiceId($sessionServiceEntity->getSessionServiceId());
        $sessionServiceDto->setSession(bindSessionEntity($sessionServiceEntity->getSession()));
        $sessionServiceDto->setService(bindServiceEntity($sessionServiceEntity->getService()));
        return $sessionServiceDto;
    } else {
        return null;
    }
}
function bindTransactionServiceEntity($transactionServiceEntity)
{
    if ($transactionServiceEntity != null) {
        $transactionServiceDto = new TransactionServiceDto();
        $transactionServiceDto->setTransactionServiceId($transactionServiceEntity->getTransactionServiceId());
        $transactionServiceDto->setTransaction(bindTransactionEntity($transactionServiceEntity->getTransaction()));
        $transactionServiceDto->setService(bindServiceEntity($transactionServiceEntity->getService()));
        return $transactionServiceDto;
    } else {
        return null;
    }
}
    }
});
$app->put('/services/:id', function ($id) use($app) {
    global $entityManager;
    $serviceEntity = $entityManager->find("ServiceEntity", $id);
    $entityManager->flush();
    $serviceDto = bindServiceEntity($serviceEntity);
    $serviceDto->printData($app);
});
$app->post('/services', function () use($app) {
    global $entityManager;
    $serviceDto = new ServiceDto();
    $serviceDto->bindJson($app);
    $entityManager->persist($serviceEntity);
    $entityManager->flush();
    $serviceDto = bindServiceEntity($serviceEntity);
    $serviceDto->printData($app);
});
$app->delete('/services/:id', function ($id) use($app) {
    global $entityManager;
    $serviceEntity = $entityManager->find("ServiceEntity", $id);
    $entityManager->remove($serviceEntity);
    $entityManager->flush();
});
/*Referances*/
$app->get('/services/:id/transactionservices', function ($id) use($app) {
    global $entityManager;
    $transactionServiceEntities = $entityManager->getRepository("TransactionServiceEntity")->findBy(array('service' => $id));
    $transactionService = bindTransactionServiceEntityArray($transactionServiceEntities);
    $transactionService->printData($app);
});