protected function _filterHotels(HotelColl $hotels)
 {
     if ($this->session->has_userdata('filter')) {
         foreach ($this->session->userdata('filter') as $filterGroup => $filters) {
             if ($filterGroup == 'hotel-name') {
                 foreach ($filters as $hotelName) {
                     $htlNameFiltr = new HtlNameFiltr();
                     $htlNameFiltr->setFilter($hotelName);
                     $htlNameFiltr->setFilterGrp('hotel-name');
                     $hotels->addFilter($htlNameFiltr);
                 }
             }
             if ($filterGroup == 'hotel-portfolio') {
                 $this->load->model('Do_portfolio');
                 $htlPrtfoFiltr = new HtlPrtfoFiltr();
                 foreach ($filters as $portfolioName) {
                     # get equivalent id
                     $portfolio = $this->Do_portfolio->getByName($portfolioName);
                     $portfolioId = empty($portfolio) ? 0 : $portfolio->id;
                     $htlPrtfoFiltr->setFilterGrp('hotel-portfolio');
                     $htlPrtfoFiltr->setFilter($portfolioId);
                 }
                 $hotels->addFilter($htlPrtfoFiltr);
             }
             if ($filterGroup == 'hotel-country') {
                 foreach ($filters as $tagVal) {
                     $htlTagFiltr = new HtlTagFiltr();
                     $htlTagFiltr->setFilter($tagVal);
                     $htlTagFiltr->setFilterGrp('hotel-country');
                     $hotels->addFilter($htlTagFiltr);
                 }
             }
             if ($filterGroup == 'hotel-coach') {
                 foreach ($filters as $tagVal) {
                     $htlTagFiltr = new HtlTagFiltr();
                     $htlTagFiltr->setFilter($tagVal);
                     $htlTagFiltr->setFilterGrp('hotel-coach');
                     $hotels->addFilter($htlTagFiltr);
                 }
             }
         }
     }
     return $hotels;
 }