public function index(SearchModel $searchCriteria)
 {
     $result['title'] = 'Estates';
     $result['estates'] = array();
     $result['categories'] = $this->category->getCategories();
     $result['cities'] = $this->city->getCities();
     $result['search'] = $searchCriteria;
     if ($searchCriteria->sort_type !== null) {
         $orderCriteria = $this->getOrderCriteria($searchCriteria);
         $is_furnished = $this->getIsFurnishedAsArray($searchCriteria);
         /* @var $estates \Models\ViewModels\EstateBasicViewModel[] */
         $estates = $this->estate->getEstates(isset($searchCriteria->category_id) ? $searchCriteria->category_id : array(), isset($searchCriteria->city_id) ? $searchCriteria->city_id : array(), isset($searchCriteria->ad_type) ? $searchCriteria->ad_type : array(), $searchCriteria->start_price, $searchCriteria->end_price, $searchCriteria->start_area, $searchCriteria->end_area, $searchCriteria->start_floor, $searchCriteria->end_floor, $searchCriteria->location, $is_furnished, $searchCriteria->has_image, $orderCriteria);
         foreach ($estates as $estate) {
             $estate->image = $this->setEstateMainImage($estate);
             $estate->thumbnailName = $this->setImageThumb($estate->image);
         }
         $result['estates'] = $estates;
     }
     $result['ad_type'] = $this->setAdTypes();
     $result['sort_type'] = $this->setSortType();
     if ($searchCriteria->sort_type != null) {
         $result['sort_type'][$searchCriteria->sort_type]['options']['selected'] = true;
     } else {
         $result['sort_type'][2]['options']['selected'] = true;
     }
     $result['userFavourite'] = $this->setUserFavorites();
     View::make('index', $result);
     if (Auth::isAuth()) {
         View::appendTemplateToLayout('topBar', 'top_bar.user');
     } else {
         View::appendTemplateToLayout('topBar', 'top_bar.guest');
     }
     View::appendTemplateToLayout('header', 'includes.header')->appendTemplateToLayout('footer', 'includes.footer')->render();
 }