public async Task <ActionResult> SelectedFlights(string outboundRadioGroup, string inboundRadioGroup) { // Try to get FlightSearchDataModel from session data. var searchData = (FlightSearchDataModel)Session["searchData"]; SelectedFlights selectedFlights; bool parseOK = TryParseFlightIds(outboundRadioGroup, inboundRadioGroup, out selectedFlights); // Flight ids could not be parsed or search data from session is null. if ((parseOK == false) || (searchData is null)) { return(RedirectToAction("Index", "Search")); } // Map data to selected flights object. selectedFlights.NumberAdults = searchData.NumberAdults; selectedFlights.NumberChildren = searchData.NumberChildren; selectedFlights.TravelClass = searchData.TravelClass; await CalculatePriceAsync(selectedFlights); SelectedFlightsModel selectedFlightsModel = await selectedFlights.ToSelectedFlightsModel(_calculator); // Add SelectedFlightsModel object to session data. Session.Add("selectedFlightsModel", selectedFlightsModel); return(View(selectedFlightsModel)); }
/// <summary> /// Convert this SelectedFlightsModel to a SelectedFlights object. /// </summary> /// <param name="model">The SelectedFlightsModel to convert.</param> public static SelectedFlights ToSelectedFlights(this SelectedFlightsModel model) { var output = new SelectedFlights { Outbound = model.Outbound.Flight, NumberAdults = model.NumberAdults, NumberChildren = model.NumberChildren, TravelClass = model.TravelClass, Price = model.TotalPrice }; if (model.IsReturn) { output.Inbound = model.Inbound.Flight; } return(output); }