/**
  * Insert object to database
  */
 public function insert()
 {
     $Route = $this->newRouteObject();
     $Trackdata = $this->newTrackdataObject();
     $Swimdata = $this->newSwimObject();
     if ($Route->name() != '' || $Route->hasPositionData() || $Route->hasElevations()) {
         $InserterRoute = new Runalyze\Model\Route\Inserter(DB::getInstance(), $Route);
         $InserterRoute->setAccountID(SessionAccountHandler::getId());
         $InserterRoute->insert();
         $this->forceToSet('routeid', $InserterRoute->insertedID());
         if ($this->getElevation() == 0) {
             $this->setElevation($Route->elevation());
         }
     }
     $Activity = $this->newActivityObject();
     $InserterActivity = new Runalyze\Model\Activity\Inserter(DB::getInstance(), $Activity);
     $InserterActivity->setAccountID(SessionAccountHandler::getId());
     $InserterActivity->setRoute($Route);
     $InserterActivity->setTrackdata($Trackdata);
     $InserterActivity->setSwimdata($Swimdata);
     $InserterActivity->insert();
     $this->id = $InserterActivity->insertedID();
     if ($this->hasArrayTime() || $this->hasArrayDistance() || $this->hasArrayHeartrate()) {
         $Trackdata->set(Runalyze\Model\Trackdata\Object::ACTIVITYID, $this->id());
         $InserterTrack = new Runalyze\Model\Trackdata\Inserter(DB::getInstance(), $Trackdata);
         $InserterTrack->setAccountID(SessionAccountHandler::getId());
         $InserterTrack->insert();
     }
     if ($this->hasArrayStroke() || $this->hasArrayStrokeType()) {
         $Swimdata->set(Runalyze\Model\Swimdata\Object::ACTIVITYID, $this->id());
         $InserterSwim = new Runalyze\Model\Swimdata\Inserter(DB::getInstance(), $Swimdata);
         $InserterSwim->setAccountID(SessionAccountHandler::getId());
         $InserterSwim->insert();
     }
     if ($this->hasArrayHRV()) {
         $HRV = $this->newHRVObject();
         $HRV->set(Runalyze\Model\HRV\Object::ACTIVITYID, $this->id());
         $InserterHRV = new Runalyze\Model\HRV\Inserter(DB::getInstance(), $HRV);
         $InserterHRV->setAccountID(SessionAccountHandler::getId());
         $InserterHRV->insert();
     }
 }
示例#2
0
 /**
  * Update object in database
  */
 public function update()
 {
     $DB = DB::getInstance();
     $AccountID = SessionAccountHandler::getId();
     $OldData = isset($_POST['old-data']) ? unserialize(base64_decode($_POST['old-data'])) : array();
     if (!is_array($OldData)) {
         $OldData = array();
     }
     $NewActivity = $this->newActivityObject();
     $UpdaterActivity = new \Runalyze\Model\Activity\Updater($DB, $NewActivity, new \Runalyze\Model\Activity\Object($OldData));
     if (isset($OldData['routeid']) && $OldData['routeid'] > 0) {
         $UpdaterActivity->setRoute(\Runalyze\Context::Factory()->route($OldData['routeid']));
     } elseif ($this->get('route') != '') {
         $InserterRoute = new Runalyze\Model\Route\Inserter($DB, new Runalyze\Model\Route\Object(array(Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'), Runalyze\Model\Route\Object::DISTANCE => $this->get('distance'))));
         $InserterRoute->setAccountID($AccountID);
         $InserterRoute->insert();
         $NewActivity->set(Runalyze\Model\Activity\Object::ROUTEID, $InserterRoute->insertedID());
     }
     $UpdaterActivity->setTrackdata(\Runalyze\Context::Factory()->trackdata($this->id()));
     $UpdaterActivity->setEquipmentIDs(TrainingFormular::readEquipmentFromPost($NewActivity->sportid()), isset($_POST['equipment_old']) ? explode(',', $_POST['equipment_old']) : array());
     $UpdaterActivity->setAccountID($AccountID);
     $UpdaterActivity->update();
     if (isset($OldData['routeid']) && isset($OldData['route'])) {
         $UpdaterRoute = new \Runalyze\Model\Route\Updater($DB, new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'))), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $OldData['route'], Runalyze\Model\Route\Object::CITIES => $OldData['route'])));
         $UpdaterRoute->setAccountID($AccountID);
         $UpdaterRoute->update();
     }
 }