public IActionResult OnPostFilter(int option) { switch (option) { //case 1: // break; case 2: Predicate <SpeedMeasurement> predicateOver = (SpeedMeasurement s) => { return(s.Speed > s.Location.SpeedLimit); }; FilterList = SortFilter.Comparer(FilterList, predicateOver); break; case 3: Predicate <SpeedMeasurement> predicateCut = s => { return(s.Speed > s.Location.SpeedLimit * 1.3); }; FilterList = SortFilter.Comparer(FilterList, predicateCut); break; case 4: Predicate <SpeedMeasurement> predicateConditional = s => { if (s.Location.Zone == Zone.Motorvej) { return(s.Speed > s.Location.SpeedLimit * 1.3); } else { return(s.Speed > s.Location.SpeedLimit * 1.6); } }; FilterList = SortFilter.Comparer(FilterList, predicateConditional); break; case 5: Predicate <SpeedMeasurement> predicateUnconditional = s => { return(s.Speed > s.Location.SpeedLimit * 2 && s.Speed >= 100); }; FilterList = SortFilter.Comparer(FilterList, predicateUnconditional); break; default: break; } return(Page()); }
public IActionResult OnPostSort(int option, string option2) { if (option2?.Length > 0) { Predicate <Location> predicateLocation = (Location loc) => { return(loc.Address.Contains(option2)); }; SortableLocationList = SortFilter.Comparer(SortableLocationList, predicateLocation); } if (option == 1) { SortableLocationList.Sort(); } else if (option == 2) { SortableLocationList.Sort(new LocationSortByZone()); } else if (option == 3) { SortableLocationList.Sort(new LocationSortBySpeed()); } return(Page()); }