Пример #1
0
        // 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;
 }