Ejemplo n.º 1
0
        public async Task <IActionResult> Index(int page,
                                                SortOptions sortOptions = SortOptions.Newest,
                                                ListingType listingType = ListingType.All)
        {
            var model = new ListWithFilterModel {
                SortOption = sortOptions
            };

            var searchText    = HttpContext.Session.GetString("search");
            var cachedFilters = HttpContext.Session.GetString("filters");

            if (!string.IsNullOrEmpty(searchText))
            {
                model.Search     = searchText;
                model.Properties = await _propertyViewModelService.Search(User.Identity.Name, searchText, model.SortOption);
            }
            else
            {
                if (cachedFilters != null)
                {
                    model.FilterSpecification = JsonConvert.DeserializeObject <PropertyFilterSpecification>(cachedFilters);
                }

                model.FilterSpecification.Reason = listingType;
                model.Properties = await _propertyViewModelService
                                   .ListProperties(User.Identity.Name, model.FilterSpecification, page == 0? 1 : page, Constants.ItemsPerPage,
                                                   model.SortOption);
            }

            await SetCacheEntries();

            return(View(model));
        }