Exemplo n.º 1
0
 /**
  * Delete the given trend and all associated scalars.
  *
  * @param Tracker_TrendDao $trendDao trend DAO
  * @param null|ProgressDao $progressDao progress DAO
  */
 public function delete($trendDao, $progressDao = null)
 {
     /** @var Tracker_ScalarModel $scalarModel */
     $scalarModel = MidasLoader::loadModel('Scalar', $this->moduleName);
     /** @var Tracker_ThresholdNotificationModel $notificationModel */
     $notificationModel = MidasLoader::loadModel('ThresholdNotification', $this->moduleName);
     if (!is_null($progressDao)) {
         /** @var ProgressModel $progressModel */
         $progressModel = MidasLoader::loadModel('Progress');
         $progressDao->setMessage('Counting scalar points...');
         $progressModel->save($progressDao);
     }
     $scalarDaos = $trendDao->getScalars();
     $scalarIndex = 0;
     if (!is_null($progressDao)) {
         $progressDao->setMaximum(count($scalarDaos));
         /** @noinspection PhpUndefinedVariableInspection */
         $progressModel->save($progressDao);
     }
     /** @var Tracker_ScalarDao $scalarDao */
     foreach ($scalarDaos as $scalarDao) {
         if (!is_null($progressDao)) {
             ++$scalarIndex;
             $message = 'Deleting scalars: ' . $scalarIndex . ' of ' . $progressDao->getMaximum();
             /** @noinspection PhpUndefinedVariableInspection */
             $progressModel->updateProgress($progressDao, $scalarIndex, $message);
         }
         $scalarModel->delete($scalarDao);
     }
     $notificationModel->deleteByTrend($trendDao);
     parent::delete($trendDao);
 }