public function createSession(\Lexicon\Port\Adaptor\Data\Lexicon\Session $session)
 {
     $locator = \Lexicon\Infrastructure\Helpers\Locator::getInstance();
     $conn = $locator->locate("DB_CONNECT");
     $handler = $locator->locate("VALIDATION_HANDLER");
     $session->validateType($handler);
     if ($handler->hasErrors()) {
         throw new \Exception($handler, $code);
     } else {
         $qb = $locator->locate("DB_QUERY_BUILDER", []);
         $query = $qb->insert()->t("t_sessions")->set()->c("user_id")->eq()->val($session->getUserId(), $qb::NOT_NULL)->c("code")->eq()->val($session->getCode(), $qb::NOT_NULL)->c("dt_start")->eq()->val($session->getDtStart(), $qb::NOT_NULL)->c("used")->eq()->val($session->getUsed(), $qb::NOT_NULL)->c("attempts")->eq()->val($session->getAttempts(), $qb::NOT_NULL)->c("xmlview")->eq()->val($session->toXmlStr())->fi();
         //print($query);print_r($params);exit;
         $sth = $conn->prepare($query);
         $sth->execute($qb->getParams());
         return $this->findSession($session->getUserId(), $session->getCode());
     }
 }