Пример #1
0
        public async Task <IActionResult> Index(int?page,
                                                int?type,
                                                int?city,
                                                int?district,
                                                int?priceRange,
                                                int?acreageRange,
                                                string searchString)
        {
            int pageSize  = 18;
            var condition = new Condition()
            {
                Type         = type ?? 0,
                City         = city ?? 0,
                District     = district ?? 0,
                PriceRange   = priceRange ?? 0,
                AcreageRange = acreageRange ?? 0,
                SearchString = searchString ?? string.Empty
            };

            var source = _realEstateServices.Filter(condition);

            var types = _realEstateServices.GetRealEstateTypeList();

            types = types.Concat(new[] { new RealEstateType {
                                             Id = 0, RealEstateTypeName = "Tất cả"
                                         } });
            types = types.OrderBy(t => t.Id);

            var cities = _realEstateServices.GetCityList();

            cities = cities.Concat(new[] { new City {
                                               Id = 0, CityName = "Tất cả"
                                           } });
            cities = cities.OrderBy(c => c.Id);


            var districts = await _commonServices.GetDistrictsByCity(city);

            districts = districts.Concat(new[] { new District {
                                                     Id = 0, DistrictName = "Tất cả"
                                                 } });
            districts = districts.OrderBy(d => d.Id);

            var priceRanges  = Helper.GetPriceRangeForView();
            var acreagaRange = Helper.GetAcreageRangeForView();

            ViewData["Types"]         = new SelectList(types, "Id", "RealEstateTypeName", condition.Type);
            ViewData["Cities"]        = new SelectList(cities, "Id", "CityName", condition.City);
            ViewData["Districts"]     = new SelectList(districts, "Id", "DistrictName", condition.District);
            ViewData["PriceRanges"]   = new SelectList(priceRanges, "Value", "Key", condition.PriceRange);
            ViewData["AcreagaRanges"] = new SelectList(acreagaRange, "Value", "Key", condition.AcreageRange);

            return(View(await CustomPagination.CreateAsync(source, condition, page ?? 1, pageSize)));
        }