public async Task <IActionResult> SearchList(string searchString, int page) { // verify that page can't be negative if (page == 0) { return(RedirectToAction(nameof(RoomList))); } // verify that there is criteria for search if (String.IsNullOrEmpty(searchString)) { return(RedirectToAction(nameof(RoomList))); } RoomListPagination pagination = new RoomListPagination { CurrentPage = page == 0 ? 1 : page }; IEnumerable <Room> rooms = await Task.Run(() => roomRepository.Rooms .Where(r => r.RoomCode.Contains(searchString) || r.Name.Contains(searchString)) .OrderBy(r => r.RoomCode)); pagination.Count = rooms.Count(); rooms = await Task.Run(() => rooms.Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize)); return(View(nameof(RoomList), new RoomListViewModel { Rooms = rooms, Pagination = pagination, SearchString = searchString })); }
public async Task <IActionResult> RoomList(int page = 1) { if (page == 0) { return(RedirectToAction(nameof(RoomList))); } RoomListPagination pagination = new RoomListPagination { CurrentPage = page }; IEnumerable <Room> rooms = await Task.Run(() => roomRepository.Rooms.OrderBy(r => r.RoomCode) .Skip((page - 1) * pagination.PageSize) .Take(pagination.PageSize)); pagination.Count = roomRepository.Rooms.Count(); return(View(new RoomListViewModel { Rooms = rooms, Pagination = pagination })); }