Esempio n. 1
0
        //Passing 1st trip and run a reverse search with return date
        public ActionResult FlightListReturn(string fid, int rid, int?page)
        {
            try
            {
                var ridParse = int.TryParse(rid.ToString(), out int ridParsed);
                if (string.IsNullOrEmpty(fid))
                {
                    fid = (string)Session["fid1"];
                }
                if (!ridParse)
                {
                    rid = (int)Session["rid1"];
                }
                Session["fid1"] = fid;
                Session["rid1"] = rid;
                Session["fid2"] = null;
                FlightResult firstTrip    = FlightSearchDAO.GetFlightResult(fid, rid);
                FlightSearch flightSearch = (FlightSearch)Session["searchParams"];
                ViewBag.RoundTrip = flightSearch.IsRoundTrip;
                var seatsLeft = firstTrip.FlightVM.AvailSeatsB + firstTrip.FlightVM.AvailSeatsF + firstTrip.FlightVM.AvailSeatsE;

                //interrupt check for available seats
                if (seatsLeft == 0)
                {
                    TempData["NoSeatsMessage"] = "Sorry, there are no more seats left for flight " + firstTrip.FlightVM.FNo;
                    return(RedirectToAction("FlightList", flightSearch));
                }

                //flip search query
                FlightSearch flightSearchReturn = ReverseFlightSearch(flightSearch);

                ViewBag.firstTrip = firstTrip;

                ViewBag.Pages = GetPages(flightSearchReturn);
                if (page == null)
                {
                    ViewBag.PageIndex = 1;
                    return(View("FlightList", GetFlightsForPage(1)));
                }
                ViewBag.PageIndex = page;

                //for debugging, making sure the original params are intact
                //Session["searchParams"] = flightSearch;

                return(View("FlightList", GetFlightsForPage(int.Parse(page.ToString()))));
            }
            catch (Exception)
            {
                //returns to home if search reversal procedure fails at any point
                TempData["errorM"] = "There was an error executing your requests. Please try again";
                return(RedirectToAction("Index"));
            }
        }
Esempio n. 2
0
 public MainWindowViewModel()
 {
     Currency = new List <string>()
     {
         "HRK", "EUR", "USD"
     };
     Countries           = AirportManager.GetCountries();
     FlightSearch        = new FlightSearch();
     FlightResult        = new FlightResult();
     AirportAutocomplete = new AirportAutocomplete();
     AirportManager.ReadFlights();
 }
Esempio n. 3
0
        public Flights Result(FlightsResults oResults)
        {
            Flights retVal = new Flights();

            if (oResults != null)
            {
                foreach (Result item in oResults.Results)
                {
                    Itinerary itinerary      = item.Itineraries.FirstOrDefault();
                    Flight    outboundFlight = null;
                    Flight    inboundFlight  = null;
                    int       inboundCount   = 0;
                    int       outboundCount  = 0;

                    if (itinerary != null)
                    {
                        outboundFlight = itinerary.Outbound.Flights.FirstOrDefault();
                        inboundFlight  = itinerary.Inbound.Flights.FirstOrDefault();

                        inboundCount  = itinerary.Inbound.Flights.Count;
                        outboundCount = itinerary.Outbound.Flights.Count;
                    }

                    FlightResult itemresult = new FlightResult();
                    itemresult.TotalPrice = Decimal.Parse(item.Fare.TotalPrice, CultureInfo.InvariantCulture);
                    itemresult.Currency   = oResults.Currency;
                    itemresult.ConnectingFlightsInboundCount  = inboundCount;
                    itemresult.ConnectingFlightsOutboundCount = outboundCount;

                    if (outboundFlight != null)
                    {
                        itemresult.DepartsAt = DateTime.Parse(outboundFlight.DepartsAt);
                    }

                    if (inboundFlight != null)
                    {
                        itemresult.ArrivesAt = DateTime.Parse(inboundFlight.DepartsAt);
                    }

                    itemresult.PassengerCount = _viewModel.FlightSearch.AdultsNumber + _viewModel.FlightSearch.ChildrenNumber + _viewModel.FlightSearch.InfantsNumber;
                    itemresult.Origin         = _viewModel.FlightSearch.Origin;
                    itemresult.Destination    = _viewModel.FlightSearch.Destination;

                    retVal.Results.Add(itemresult);
                }
            }

            return(retVal);
        }
Esempio n. 4
0
        public ActionResult FlightListWithStops2(string fid)
        {
            FlightSearch flightSearch = (FlightSearch)Session["searchParams"];

            ViewBag.RoundTrip = flightSearch.IsRoundTrip;
            if (Session["firstTrips"] == null)
            {
                return(RedirectToAction("Index"));
            }
            IEnumerable <FlightResult> secondTrips = FlightSearchDAO.SecondTripFromStop;

            Session["fid2"] = null;
            IEnumerable <FlightResult> firstTrips = (IEnumerable <FlightResult>)Session["firstTrips"];
            FlightResult firstTrip = firstTrips.Where(item => item.FlightVM.FNo == fid).FirstOrDefault();

            Session["firstTrip"] = firstTrip;
            var model = from s in secondTrips
                        where s.FlightVM.DepartureTime >= firstTrip.FlightVM.ArrivalTime
                        orderby s.FlightVM.BasePrice
                        select s;

            return(View(model));
        }
        public IHttpActionResult SearchFlightDetails([FromBody] SearchFlightDetails searchFlightDetailsObject)
        {
            List <FlightResult> flightResultList = new List <FlightResult>();

            var departurCity    = searchFlightDetailsObject.Departure;
            var arrivalCity     = searchFlightDetailsObject.Arrival;
            var arrivalCityCode = string.Empty;
            // Retrieve Departure City Code
            var departureCityCode = RunAPI.GetFlightCityCode(RunAPI.CitiesTypeAheadEndPoint, departurCity); //Kansas City, MO, USA

            if (!string.IsNullOrEmpty(arrivalCity))
            {
                arrivalCityCode = RunAPI.GetFlightCityCode(RunAPI.CitiesTypeAheadEndPoint, arrivalCity);
            }

            searchFlightDetailsObject.Departure = departureCityCode;
            searchFlightDetailsObject.Arrival   = arrivalCityCode;
            // searchFlightDetailsObject.DepartureDate = Convert.ToDateTime(searchFlightDetailsObject.DepartureDate).ToString("MM/dd/yyyy");

            try
            {
                //Get searchFlightJsonObject
                string searchFlightJsonObject =
                    RunAPI.FormatFlightSearchJsonObject(searchFlightDetailsObject.Departure,
                                                        searchFlightDetailsObject.Arrival,
                                                        searchFlightDetailsObject.DepartureDate,
                                                        numberOfAdult: Convert.ToInt32(searchFlightDetailsObject.TotalAdults),
                                                        numberOfChild: Convert.ToInt32(searchFlightDetailsObject.TotalChildren),
                                                        numberOfInfant: Convert.ToInt32(searchFlightDetailsObject.TotalInfants));

                //Search flights - Call Flight search endpoint
                var searchFlightsResult = RunAPI.PostSearchFlightAsync(RunAPI.SearchFlightEndPoint, searchFlightJsonObject).Result;

                //Deserialize flight results data
                dynamic deserializedSearchFlightList = JsonConvert.DeserializeObject(searchFlightsResult);
                var     resultItineraries            = deserializedSearchFlightList.body.data.itineraries;
                foreach (var itinerary in resultItineraries)
                {
                    var flightResult = new FlightResult();

                    foreach (var originDestination in itinerary.origin_destinations)
                    {
                        //Elapsed Time
                        flightResult.ElapsedTime = Convert.ToString(originDestination.elapsed_time);

                        //Flight segments
                        foreach (var segment in originDestination.segments)
                        {
                            flightResult.FlightSegmentList.Add(new FlightSegment
                            {
                                DepartureDate     = Convert.ToString(segment.departure.date),
                                DepartureTime     = Convert.ToString(segment.departure.time),
                                DepartureAirport  = Convert.ToString(segment.departure.airport.name),
                                DepartureTerminal = Convert.ToString(segment.departure.airport.terminal),
                                ArrivalDate       = Convert.ToString(segment.arrival.date),
                                ArrivalTime       = Convert.ToString(segment.arrival.time),
                                ArrivalAirport    = Convert.ToString(segment.arrival.airport.name),
                                ArrivalTerminal   = Convert.ToString(segment.arrival.airport.terminal),
                                FlightNumber      = Convert.ToString(segment.flight_number),
                                FlightDuration    = Convert.ToString(segment.flight_duration),
                                OperatingAirline  = Convert.ToString(segment.operating_airline.name),
                                MarketingAirline  = Convert.ToString(segment.marketing_airline.name),
                                BaggageAllowance  = Convert.ToString(segment.baggage[0].baggage.quantity) + Convert.ToString(segment.baggage[0].baggage.unit)
                            });
                        }

                        //Cabin - Economy, Business, First Class etc
                        flightResult.Cabin = Convert.ToString(itinerary.cabin.name);
                        //Currency
                        flightResult.PriceCurrency = Convert.ToString(itinerary.pricing.provider.currency.code);
                        //Base Fare
                        flightResult.BaseFarePrice = Convert.ToString(itinerary.pricing.provider.base_fare);
                        //Total Fare
                        flightResult.TotalFarePrice = Convert.ToString(itinerary.pricing.provider.total_fare);

                        foreach (var fareBreakDownItem in itinerary.pricing.provider.fare_break_down)
                        {
                            flightResult.FlightPriceList.Add(new FlightPrice
                            {
                                PassengerCode           = Convert.ToString(fareBreakDownItem.passenger.code),
                                PassengerQty            = Convert.ToString(fareBreakDownItem.passenger.quantity),
                                TotalPassengerFarePrice = Convert.ToString(fareBreakDownItem.provider_fare.total),
                                PassengerFareTax        = Convert.ToString(fareBreakDownItem.provider_fare.taxes[0]),
                            });
                        }
                    }

                    flightResultList.Add(flightResult);
                }


                return(Ok(flightResultList));
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }