예제 #1
0
        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());
        }