public async Task <IActionResult> Index(string sortOrder = null, string currentFilter = null, string searchString = null, int?page = null) { ViewData["CurrentSort"] = sortOrder; ViewData["SortName"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewData["SortIsoCode"] = sortOrder == "code" ? "code_desc" : "code"; ViewData["SortSymbol"] = sortOrder == "symbol" ? "symbol_desc" : "symbol"; ViewData["SortValidFrom"] = sortOrder == "validFrom" ? "validFrom_desc" : "validFrom"; ViewData["SortValidTo"] = sortOrder == "validTo" ? "validTo_desc" : "validTo"; repository.SortOrder = sortOrder != null && sortOrder.EndsWith("_desc") ? SortOrder.Descending : SortOrder.Ascending; repository.SortFunction = getSortFunction(sortOrder); if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; repository.SearchString = searchString; repository.PageIndex = page ?? 1; var l = await repository.GetObjectsList(); return(View(new CurrencyViewModelsList(l))); }
public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page) { ViewData["CurrentSort"] = sortOrder; ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewData["ISOCurrencyParm"] = String.IsNullOrEmpty(sortOrder) ? "isoCurrencyChar_desc" : ""; ViewData["ISOThreeCharSortParm"] = String.IsNullOrEmpty(sortOrder) ? "isoThreeChar_desc" : ""; ViewData["DateSortParm"] = sortOrder == "date_asc" ? "date_desc" : "date_asc"; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; var l = await repository.GetObjectsList(); if (!String.IsNullOrEmpty(searchString)) { l = l.Where(s => s.DbRecord.Name.Contains(searchString)); } switch (sortOrder) { case "name_desc": l = l.OrderByDescending(s => s.DbRecord.Name); break; case "isoCurrencyChar_desc": l = l.OrderByDescending(s => s.DbRecord.Code); break; case "isoThreeChar_desc": l = l.OrderByDescending(s => s.DbRecord.ID); break; case "date_desc": l = l.OrderByDescending(s => s.DbRecord.ValidFrom); break; case "date_asc": l = l.OrderBy(s => s.DbRecord.ValidFrom); break; default: l = l.OrderBy(s => s.DbRecord.Name); break; } //int pageSize = 3; //return View(await PaginatedList<CurrencyViewModel>.CreateAsync(new CurrencyViewModelsList(l), page ?? 1, pageSize)); return(View(new CurrencyViewModelsList(l))); }