//[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 async Task <IActionResult> Index() { var viewModel = new ApartmentsListViewModel { Apartments = await this.apartmentsService.GetAllAsync <ApartmentViewModel>(), Payments = await this.paymentsService.GetAllAsync <PaymentViewModel>(), }; return(this.View(viewModel)); }