// GET: Contact public ActionResult Index(string sortOrder, string CurrentSort, int?page, string searchString, string currentFilter) { int pageSize = 10; int pageIndex = 1; pageIndex = page.HasValue ? Convert.ToInt32(page) : 1; ViewBag.CurrentSort = sortOrder; sortOrder = String.IsNullOrEmpty(sortOrder) ? "FirstName" : sortOrder; IPagedList <ContactMaster> contacts = null; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; var response = _manager.GetAllContacts(); contacts = response.ToPagedList(pageIndex, pageSize); if (!String.IsNullOrEmpty(searchString)) { contacts = contacts.Where(C => C.FirstName.Contains(searchString) || C.LastName.Contains(searchString)).ToPagedList(pageIndex, pageSize);; } switch (sortOrder) { case "FirstName": if (sortOrder.Equals(CurrentSort)) { contacts = contacts.OrderByDescending(m => m.FirstName).ToPagedList(pageIndex, pageSize); } else { contacts = contacts.OrderBy(m => m.FirstName).ToPagedList(pageIndex, pageSize); } break; case "LastName": if (sortOrder.Equals(CurrentSort)) { contacts = contacts.OrderByDescending(m => m.LastName).ToPagedList(pageIndex, pageSize); } else { contacts = contacts.OrderBy(m => m.LastName).ToPagedList(pageIndex, pageSize); } break; case "Default": contacts = contacts.OrderBy(m => m.FirstName).ToPagedList(pageIndex, pageSize); break; } return(View(contacts)); }