/**
  * @route hall/create
  * @method post
  * @authorize
  */
 public function hallCreate(CreateHallBindingModel $model)
 {
     if ($this->IsRequestValid()) {
         $venueFromDb = new VenueModel();
         $venueValue = $venueFromDb->getById($model->venueId);
         if ($venueValue === false) {
             header("Location: " . ERROR_PAGE_URL);
         } else {
             $this->hallModel->createHall($model->hallName, $model->hallCapacity, $model->venueId);
             $this->redirect("venue", "id", $model->venueId);
         }
     } else {
         header("Location: " . ERROR_PAGE_URL);
     }
 }
 /**
  * @route venues/all
  */
 public function all()
 {
     $venueList = array();
     $venueViewModel = new VenueViewModel();
     $venuesFromDb = new VenueModel();
     $allvenuesFromDb = $venuesFromDb->getAll();
     foreach ($allvenuesFromDb as $item) {
         $this->mapper->map($item, $venueViewModel);
         // objects are passed as reference ->creates deep copy before array_push
         $copy = unserialize(serialize($venueViewModel));
         array_push($venueList, $copy);
     }
     return new View($venueList);
 }