public ActionResult Index(int id = 1) { ForSellViewModel viewModel; if (this.HttpContext.Cache["RealEstateForSale page_" + id] != null) { viewModel = (ForSellViewModel)this.HttpContext.Cache["RealEstateForSale page_" + id]; } else { var page = id; var allItemsCount = this.RealEstatesService.GetForSale().Count(); var totalPages = (int)Math.Ceiling(allItemsCount / (decimal)ItemsPerPage); var itemsToSkip = (page - 1) * ItemsPerPage; var realEstates = this.RealEstatesService.GetForSale() .Skip(itemsToSkip) .Take(ItemsPerPage) .To<RealEstateViewModel>().ToList(); viewModel = new ForSellViewModel() { CurrentPage = page, TotalPages = totalPages, RealEstates = realEstates }; this.HttpContext.Cache["RealEstateForSale page_" + id] = viewModel; } return this.View(viewModel); }
public ActionResult Search( int? beds, string property_type, string minPrice, string maxPrice, string minYear, string maxYear, string minSQFT, string maxSQFT) { if (beds == null) { beds = 0; } int minP = minPrice == string.Empty || minPrice == null ? 0 : int.Parse(minPrice); int maxP = maxPrice == string.Empty || maxPrice == null ? int.MaxValue : int.Parse(maxPrice); int minY = minYear == string.Empty || minYear == null ? 1800 : int.Parse(minYear); int maxY = maxYear == string.Empty || maxYear == null ? 2100 : int.Parse(maxYear); int minSQ = minSQFT == string.Empty || minSQFT == null ? 0 : int.Parse(minSQFT); int maxSQ = maxSQFT == string.Empty || maxSQFT == null ? int.MaxValue : int.Parse(maxSQFT); IEnumerable<RealEstateViewModel> realEstates = this.RealEstatesService.GetAll() .Where(r => r.Bedrooms >= beds && (r.SellingPrice >= minP && r.SellingPrice <= maxP) && (r.ConstructionYear >= minY && r.ConstructionYear <= maxY) && (r.SquareMeter >= minSQ && r.SquareMeter <= maxSQ)) .To<RealEstateViewModel>().ToList(); ForSellViewModel vm = new ForSellViewModel() { RealEstates = realEstates }; return this.PartialView("_RealEstatesForSaleTemplate", vm); }