public async Task <IActionResult> Index() { FlightSearchByOperatorViewModel model = new FlightSearchByOperatorViewModel { PageNumber = 1 }; List <Operator> operators = await _operators.GetOperatorsAsync(); model.SetOperators(operators); return(View(model)); }
public async Task <IActionResult> Index(FlightSearchByOperatorViewModel model) { if (ModelState.IsValid) { int page = model.PageNumber; switch (model.Action) { case ControllerActions.ActionPreviousPage: page -= 1; break; case ControllerActions.ActionNextPage: page += 1; break; case ControllerActions.ActionSearch: page = 1; break; default: break; } // Need to clear model state here or the page number that was posted // is returned and page navigation doesn't work correctly. So, capture // and amend the page number, above, then apply it, below ModelState.Clear(); List <Flight> flights = await _flights.GetFlightsByOperatorAsync(model.OperatorId, page, _settings.Value.FlightSearchPageSize); model.SetFlights(flights, page, _settings.Value.FlightSearchPageSize); } List <Operator> operators = await _operators.GetOperatorsAsync(); model.SetOperators(operators); return(View(model)); }