// GET: Streets public IActionResult Index(string streetName, int page = 1, StreetsSortState sortOrder = StreetsSortState.StreetNameAsc) { int pageSize = 10; IQueryable <Streets> source = _context.Streets; if (streetName != null) { source = source.Where(x => x.StreetName.Contains(streetName)); } switch (sortOrder) { case StreetsSortState.StreetNameAsc: source = source.OrderBy(x => x.StreetName); break; case StreetsSortState.StreetNameIdDesc: source = source.OrderByDescending(x => x.StreetName); break; default: source = source.OrderBy(x => x.StreetName); break; } var count = source.Count(); var items = source.Skip((page - 1) * pageSize).Take(pageSize); PageViewModel pageView = new PageViewModel(count, page, pageSize); IndexViewModel ivm = new IndexViewModel { PageViewModel = pageView, SortViewModel = new SortStreetsViewModel(sortOrder), FilterViewModel = new FilterStreetsViewModel(streetName), Streets = items, Users = _context.User }; return(View(ivm)); }
public SortStreetsViewModel(StreetsSortState sortOrder) { StreetNameAscSort = sortOrder == StreetsSortState.StreetNameAsc ? StreetsSortState.StreetNameIdDesc : StreetsSortState.StreetNameAsc; Current = sortOrder; }