public async Task <ActionResult> Index(string searchString, string currentFilter, string sorting, int pageSize = 10, int pageNumber = 1) { if (String.IsNullOrEmpty(searchString)) { searchString = currentFilter; } var model = new IndexViewModel <VehicleModelDTO, string>(); var filteringParams = _filteringFactory.Build(searchString, currentFilter); var pagingParams = _pagingFactory.Build(pageNumber, pageSize); var sortingParams = _sortingFactory.Build(sorting); var options = _optionsFactory.Build(include: "VehicleMake"); var pagedDomainList = await _modelService.GetAllAsync(filteringParams, pagingParams, sortingParams, options); model.EntityList = new StaticPagedList <VehicleModelDTO>(Mapper.Map <IEnumerable <VehicleModelDTO> >(pagedDomainList), pagedDomainList.GetMetaData()); SetMessage(); model.CurrentFilter = searchString; ViewBag.PageSizeDropdown = new SelectList(PagingHelper.PageSizeDropdown); ViewBag.IdSorting = sorting == "id" ? "id_desc" : "id"; ViewBag.NameSorting = string.IsNullOrEmpty(sorting) ? "name_desc" : ""; ViewBag.AbrvSorting = sorting == "abrv" ? "abrv_desc" : "abrv"; ViewBag.MakeSorting = sorting == "make" ? "make_desc" : "make"; model.Sorting = sorting; return(View(model)); }