private function delete_parameter_and_bugs()
 {
     $bugs_list = array();
     switch ($this->parameter) {
         case 'type':
             $result = PersistenceContext::get_querier()->select_rows(BugtrackerSetup::$bugtracker_table, array('id'), 'WHERE type=:id', array('id' => $this->id));
             while ($row = $result->fetch()) {
                 $bugs_list[] = $row['id'];
             }
             //Delete bugs
             BugtrackerService::delete('WHERE type=:id', array('id' => $this->id));
             break;
         case 'category':
             $result = PersistenceContext::get_querier()->select_rows(BugtrackerSetup::$bugtracker_table, array('id'), 'WHERE category=:id', array('id' => $this->id));
             while ($row = $result->fetch()) {
                 $bugs_list[] = $row['id'];
             }
             //Delete bugs
             BugtrackerService::delete('WHERE category=:id', array('id' => $this->id));
             break;
         case 'version':
             $result = PersistenceContext::get_querier()->select_rows(BugtrackerSetup::$bugtracker_table, array('id'), 'WHERE detected_in=:id OR fixed_in=:id', array('id' => $this->id));
             while ($row = $result->fetch()) {
                 $bugs_list[] = $row['id'];
             }
             //Delete bugs
             BugtrackerService::delete('WHERE detected_in=:id OR fixed_in=:id', array('id' => $this->id));
             BugtrackerStatsCache::invalidate();
             break;
     }
     //Delete history lines containing this type
     BugtrackerService::delete_history("WHERE bug_id IN (:bugs_list)", array('bugs_list' => implode(',', $bugs_list)));
 }
 private function save()
 {
     $now = new Date();
     $current_user = AppContext::get_current_user();
     if ($this->config->are_pm_enabled() && $this->config->are_pm_delete_enabled()) {
         //Add comment if needed
         $comment = !$this->form->field_is_disabled('comments_message') ? $this->form->get_value('comments_message', '') : '';
         //Send PM with comment to updaters if the option is enabled
         BugtrackerPMService::send_PM_to_updaters('delete', $this->bug->get_id(), $comment);
     }
     //Delete bug
     BugtrackerService::delete("WHERE id=:id", array('id' => $this->bug->get_id()));
     //Delete bug history
     BugtrackerService::delete_history("WHERE bug_id=:id", array('id' => $this->bug->get_id()));
     //Delete comments
     CommentsService::delete_comments_topic_module('bugtracker', $this->bug->get_id());
     //Delete admin alert
     if ($this->config->are_admin_alerts_enabled()) {
         $alerts = AdministratorAlertService::find_by_criteria($this->bug->get_id(), 'bugtracker');
         if (!empty($alerts)) {
             AdministratorAlertService::delete_alert($alerts[0]);
         }
     }
     BugtrackerStatsCache::invalidate();
     Feed::clear_cache('bugtracker');
 }