public SortSectionViewModel(SectionsSortState sortOrder) { BeginAndEndAscSort = sortOrder == SectionsSortState.BeginAndEndAsc ? SectionsSortState.BeginAndEndDesc : SectionsSortState.BeginAndEndAsc; SectionNameAscSort = sortOrder == SectionsSortState.SectionNameAsc ? SectionsSortState.SectionNameDesc : SectionsSortState.SectionNameAsc; StreetNameAscSort = sortOrder == SectionsSortState.StreetNameAsc ? SectionsSortState.StreetNameDesc : SectionsSortState.StreetNameAsc; Current = sortOrder; }
// GET: Sections public IActionResult Index(int?beginAndEnd, string sectionName, string streetName, int page = 1, SectionsSortState sortOrder = SectionsSortState.BeginAndEndAsc) { int pageSize = 10; IQueryable <Sections> source = _context.Sections.Include(x => x.Street); if (beginAndEnd != 0 && beginAndEnd != null) { source = source.Where(x => x.BeginAndEnd == beginAndEnd); } if (sectionName != null) { source = source.Where(x => x.SectionName.Contains(sectionName)); } if (streetName != null) { source = source.Where(x => x.Street.StreetName.Contains(streetName)); } switch (sortOrder) { case SectionsSortState.BeginAndEndAsc: source = source.OrderBy(x => x.BeginAndEnd); break; case SectionsSortState.BeginAndEndDesc: source = source.OrderByDescending(x => x.BeginAndEnd); break; case SectionsSortState.SectionNameAsc: source = source.OrderBy(x => x.SectionName); break; case SectionsSortState.SectionNameDesc: source = source.OrderByDescending(x => x.SectionName); break; case SectionsSortState.StreetNameAsc: source = source.OrderBy(x => x.Street.StreetName); break; case SectionsSortState.StreetNameDesc: source = source.OrderByDescending(x => x.Street.StreetName); break; default: source = source.OrderBy(x => x.SectionName); break; } var count = source.Count(); IEnumerable <Sections> items = source.Skip((page - 1) * pageSize).Take(pageSize); //var items = source.ToList(); PageViewModel pageView = new PageViewModel(count, page, pageSize); SectionsViewModel ivm = new SectionsViewModel { PageViewModel = pageView, SortViewModel = new SortSectionViewModel(sortOrder), FilterViewModel = new FilterSectionsViewModel(beginAndEnd, sectionName, streetName), Sections = items, Users = _context.User }; return(View(ivm)); }