public static Flight GetFlight(Command.Domain.FlightQuery.Flight originalFlight, System.DateTime?reviseFlightDate = null) { if (originalFlight == null) { return(null); } Flight result = null; var airline = FoundationService.QueryAirline(originalFlight.Airline); if (null != airline) { var flightDate = reviseFlightDate ?? originalFlight.FlightDate; var basicPrice = FoundationService.QueryBasicPrice(originalFlight.Airline, originalFlight.Departure, originalFlight.Arrival, flightDate); if (null != basicPrice) { result = new Flight(originalFlight.Airline, originalFlight.FlightNo) { AirlineName = airline.ShortName, Departure = getAirport(originalFlight.Departure, originalFlight.TerminalOfDeparture), Arrival = getAirport(originalFlight.Arrival, originalFlight.TerminalOfArrival), FlightDate = flightDate, TakeoffTime = originalFlight.TakeoffTime, LandingTime = originalFlight.LandingTime, StandardPrice = basicPrice.Price, AirCraft = originalFlight.AirCraft, IsStop = originalFlight.IsStop, DaysInterval = originalFlight.AddDays, AirportFee = FoundationService.QueryAirportFee(originalFlight.AirCraft), BAF = FoundationService.QueryBAF(originalFlight.Airline, basicPrice.Mileage) }; } } return(result); }
private static IEnumerable <Bunk> getBunks(Command.Domain.FlightQuery.Flight originalFlight, Flight flight, BunkFilter bunkFilter, out List <Bunk> filteredBunks) { var result = new List <Bunk>(); filteredBunks = new List <Bunk>(); foreach (var originalBunk in originalFlight.Bunks) { List <Bunk> fbunks; var bunks = getBunks(flight, originalBunk, bunkFilter, out fbunks); result.AddRange(bunks); filteredBunks.AddRange(fbunks); } return(result); }