//[NoCache] public ActionResult Apartments(ApartmentFilterCriteria filter, AnnouncementType type = AnnouncementType.Buy, AnnouncementOrder order = AnnouncementOrder.Address, NavigationViewType viewtype = NavigationViewType.List, int page = 1, bool considerEmpty = true) { IEnumerable <ApartmentAnnouncement> apartments = _announcementRepository.GetListOfApartments().Where(an => an.Type == type && an.Address.HasValue); switch (order) { case AnnouncementOrder.Address: apartments = apartments.OrderBy(a => a.Address.ToString()); break; case AnnouncementOrder.AddressDescending: apartments = apartments.OrderByDescending(a => a.Address.ToString()); break; case AnnouncementOrder.Date: apartments = apartments.OrderBy(a => a.Created); break; case AnnouncementOrder.DateDescending: apartments = apartments.OrderByDescending(a => a.Created); break; default: apartments = apartments.OrderBy(a => a.Address.ToString()); break; } if (ModelState.IsValid) { if (filter != null) { if (filter.IsEmpty() && considerEmpty) { ApartmentFilterCriteria newFilter = ObjectToCookie.GetObjectFromCookies <ApartmentFilterCriteria>(Request.Cookies, COOKIE_KEY_APARTMENTFILTER); if (newFilter != null) { filter = newFilter; } } apartments = filter.Filter(apartments); ObjectToCookie.SetCookieAsObject <ApartmentFilterCriteria>(filter, Response.Cookies, COOKIE_KEY_APARTMENTFILTER); } } else { filter = new ApartmentFilterCriteria(); } ViewBag.ViewType = viewtype; ViewBag.Type = type; ViewBag.OrderType = order; if (viewtype == NavigationViewType.List) { ApartmentsListViewModel viewModel = new ApartmentsListViewModel(); viewModel.Page = createPageInfo(page, apartments.Count()); setViewModel(viewModel, announcementsForPage(apartments, page)); viewModel.FilterCriteria = filter; return(View("Apartments", viewModel)); } else { ApartmentsViewModel viewModel = new ApartmentsViewModel(); setViewModel(viewModel, apartments); viewModel.FilterCriteria = filter; return(View("ApartmentsMap", viewModel)); } }
public ApartmentFilterCriteriaViewModel(ApartmentFilterCriteria filter) : base() { Filter = filter; RoomsNumbers = EnumsToSelectedListItems.GetRoomsNumbersList(MaxRoomNumber); HeatingTypes = EnumsToSelectedListItems.GetHeatingTypeList(true); HotWaterTypes = EnumsToSelectedListItems.GetHotWaterTypeList(true); PlacesForCar = EnumsToSelectedListItems.GetPresentTypeValueList(true); BalconyAvailable = EnumsToSelectedListItems.GetPresentTypeValueList(true); EntranceInTypes = EnumsToSelectedListItems.GetEntranceInList(true); EntranceFromTypes = EnumsToSelectedListItems.GetEntranceFromList(true); }