Пример #1
0
 public PilotsController(IMapper mapper, AirportService service)
 {
     _mapper  = mapper;
     _service = service;
 }
 public RouteController(RouteService routeService, AirportService airportService)
 {
     _routeService   = routeService;
     _airportService = airportService;
 }
Пример #3
0
 public DeparturesController(IMapper mapper, AirportService service)
 {
     _service = service;
     _mapper  = mapper;
 }
Пример #4
0
 public AiportsController(AirportService aiportsService)
 {
     this.aiportsService = aiportsService;
 }
Пример #5
0
 public AirportsController()
 {
     this.service = new AirportService();
 }
Пример #6
0
 public AirportController(ILogger <AirportController> logger, AirportFinder airportFinder, AirportService airportService)
 {
     _logger         = logger;
     _airportFinder  = airportFinder;
     _airportService = airportService;
 }
Пример #7
0
 public Form1()
 {
     InitializeComponent();
     service = new AirportService();
 }
 public AirportServiceTests()
 {
     _service = new AirportService("https://homework.appulate.com/api");
 }
Пример #9
0
 public AirportsController(AirportService airportService)
 {
     _airportService = airportService;
 }
Пример #10
0
 public AirportsController(
     AirportService airportServices
     )
 {
     _airportServices = airportServices;
 }
 public AirportServiceTests(DatabaseFixture fixture) : base(fixture)
 {
     this._airportService = new AirportService(fixture.Context);
 }
Пример #12
0
        static async Task GetRoutesAync()
        {
            List <AirportItem> Airports = new List <AirportItem>();

            try
            {
                var            context         = new TemplateEntities1();
                AirportService _airportService = new AirportService(context);
                _airportService.DeleteAirportsTripProvider(Providers.Transavia);
                Airports = _airportService.GetActiveAirports();
                foreach (AirportItem fromAirport in Airports)
                {
                    try
                    {
                        var client      = new HttpClient();
                        var queryString = HttpUtility.ParseQueryString(string.Empty);

                        // Request headers
                        client.DefaultRequestHeaders.Add("apikey", Key);

                        var uri      = "https://api.transavia.com/v2/airports/" + fromAirport.Code.ToUpper() + "?" + queryString;
                        var response = await client.GetAsync(uri);


                        if (response != null)
                        {
                            if (response.IsSuccessStatusCode && !response.StatusCode.ToString().Contains("NoContent"))
                            {
                                var contents = await response.Content.ReadAsStringAsync();

                                if (!String.IsNullOrWhiteSpace(contents))
                                {
                                    var clientRoutes      = new HttpClient();
                                    var queryStringRoutes = HttpUtility.ParseQueryString(string.Empty);

                                    // Request headers
                                    clientRoutes.DefaultRequestHeaders.Add("apikey", Key);
                                    queryStringRoutes["Origin"] = fromAirport.Code.ToUpper();

                                    var uriRoutes      = "https://api.transavia.com/v3/routes/?" + queryStringRoutes;
                                    var responseRoutes = await clientRoutes.GetAsync(uriRoutes);


                                    if (responseRoutes != null)
                                    {
                                        if (responseRoutes.IsSuccessStatusCode && !responseRoutes.StatusCode.ToString().Contains("NoContent"))
                                        {
                                            var contentsRoutes = await responseRoutes.Content.ReadAsStringAsync();

                                            if (!String.IsNullOrWhiteSpace(contentsRoutes))
                                            {
                                                var     serializer = new JavaScriptSerializer();
                                                dynamic data       = serializer.Deserialize(contentsRoutes, typeof(object));
                                                if (data != null && data.Length > 0)
                                                {
                                                    foreach (var route in data)
                                                    {
                                                        _airportService.AddAirportsTripProviderItem(route["id"].Split('-')[0], route["id"].Split('-')[1], Providers.Transavia);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        FlightsEngine.Utils.Logger.GenerateInfo("Transavia Response null | FromAirport : " + fromAirport.Code);
                                    }
                                }
                            }
                        }
                        else
                        {
                            FlightsEngine.Utils.Logger.GenerateInfo("Transavia Response null | FromAirport : " + fromAirport.Code);
                        }
                    }
                    catch (Exception ex2)
                    {
                        FlightsEngine.Utils.Logger.GenerateError(ex2, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "FromAirport : " + fromAirport.Code);
                    }
                }
            }
            catch (Exception e)
            {
                FlightsEngine.Utils.Logger.GenerateError(e, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            }
        }
Пример #13
0
        public DbTests()
        {
            var kernel = new StandardKernel(new AirPortServiceModule());

            _airportService = kernel.Get <AirportService>();
        }
Пример #14
0
 public HomeController(ApplicationDbContext dbCotext)
 {
     _unitOfWork     = new ApplicationUnitOfWork(dbCotext);
     _airportService = new AirportService(_unitOfWork);
 }
Пример #15
0
 public StewardessesController(IMapper mapper, AirportService service)
 {
     _mapper  = mapper;
     _service = service;
 }
Пример #16
0
 public CrewsController(IMapper mapper, AirportService service)
 {
     _service = service;
     _mapper  = mapper;
 }
Пример #17
0
 public PlaneTypesController(IMapper mapper, AirportService service)
 {
     _mapper  = mapper;
     _service = service;
 }
Пример #18
0
 public AirportController(AirportService service)
 {
     _service = service;
 }
Пример #19
0
        public async Task <LivePricesServiceResponse> FilterAsync(string currency, double?minPrice, double?maxPrice, int?OutboundMaxStops,
                                                                  DateTime?OutboundDepartureDateTimeFrom, DateTime?OutboundDepartureDateTimeTo, DateTime?OutboundArrivalDateTimeFrom, DateTime?OutboundArrivalDateTimeTo,
                                                                  int?InboundMaxStops,
                                                                  DateTime?InboundDepartureDateTimeFrom, DateTime?InboundDepartureDateTimeTo, DateTime?InboundArrivalDateTimeFrom, DateTime?InboundArrivalDateTimeTo, CancellationToken cancellationToken)
        {
            IFlightSearchEngine flightSearhEngine = new FlightSearchEngineFactory().GetFlightSearchEngine("skyscanner");

            foreach (Segment s in Segments)
            {
                s.CarrierObject   = Carriers.Where(c => c.Id == s.Carrier).FirstOrDefault();
                s.CarrierName     = s.CarrierObject.Name;
                s.CarrierImageUrl = s.CarrierObject.ImageUrl;

                s.OriginPlace      = Places.Where(p => p.Id == s.OriginStation).FirstOrDefault();
                s.DestinationPlace = Places.Where(p => p.Id == s.DestinationStation).FirstOrDefault();

                if (s.DepartureDateTime != null)
                {
                    s.DepartureDateTimeConverted = DateTime.Parse(s.DepartureDateTime);
                }

                if (s.ArrivalDateTime != null)
                {
                    s.ArrivalDateTimeConverted = DateTime.Parse(s.ArrivalDateTime);
                }
            }

            Currency searchCurrency   = null;
            var      filterCurrencies = Currencies.Where(c => currency == null || currency == "" || c.Code == currency).ToList();

            if (filterCurrencies.Count() == 1)
            {
                searchCurrency = filterCurrencies.FirstOrDefault();
            }

            var filterItineries = Itineraries.Where(i =>
                                                    (
                                                        (maxPrice == null || (i.PricingOptions.Any(po => po.Price <= maxPrice && po.Price != 0)))
                                                    )
                                                    &&
                                                    (
                                                        (minPrice == null || (i.PricingOptions.Any(po => po.Price >= minPrice && po.Price != 0)))
                                                    )
                                                    &&
                                                    (
                                                        (OutboundMaxStops == null || i.OutboundLegId == null || (Legs.Where(l => l.Id == i.OutboundLegId).First().Stops.Count() <= OutboundMaxStops))
                                                    )
                                                    &&
                                                    (
                                                        (InboundMaxStops == null || i.InboundLegId == null || (Legs.Where(l => l.Id == i.InboundLegId).First().Stops.Count() <= InboundMaxStops))
                                                    )
                                                    &&
                                                    (
                                                        (OutboundDepartureDateTimeFrom == null || Segments.Where(s => Legs.Where(l => l.Id == i.OutboundLegId).First().SegmentIds.First() == s.Id).First().DepartureDateTimeConverted >= OutboundDepartureDateTimeFrom) &&
                                                        (OutboundDepartureDateTimeTo == null || Segments.Where(s => Legs.Where(l => l.Id == i.OutboundLegId).First().SegmentIds.First() == s.Id).First().DepartureDateTimeConverted <= OutboundDepartureDateTimeTo) &&
                                                        (OutboundArrivalDateTimeFrom == null || Segments.Where(s => Legs.Where(l => l.Id == i.OutboundLegId).First().SegmentIds.First() == s.Id).Last().ArrivalDateTimeConverted >= OutboundArrivalDateTimeFrom) &&
                                                        (OutboundArrivalDateTimeTo == null || Segments.Where(s => Legs.Where(l => l.Id == i.OutboundLegId).First().SegmentIds.First() == s.Id).Last().ArrivalDateTimeConverted <= OutboundArrivalDateTimeTo) &&
                                                        (InboundDepartureDateTimeFrom == null || Segments.Where(s => Legs.Where(l => l.Id == i.InboundLegId).First().SegmentIds.First() == s.Id).First().DepartureDateTimeConverted >= InboundDepartureDateTimeFrom) &&
                                                        (InboundDepartureDateTimeTo == null || Segments.Where(s => Legs.Where(l => l.Id == i.InboundLegId).First().SegmentIds.First() == s.Id).First().DepartureDateTimeConverted <= InboundDepartureDateTimeTo) &&
                                                        (InboundArrivalDateTimeFrom == null || Segments.Where(s => Legs.Where(l => l.Id == i.InboundLegId).First().SegmentIds.First() == s.Id).Last().ArrivalDateTimeConverted >= InboundArrivalDateTimeFrom) &&
                                                        (InboundArrivalDateTimeTo == null || Segments.Where(s => Legs.Where(l => l.Id == i.InboundLegId).First().SegmentIds.First() == s.Id).Last().ArrivalDateTimeConverted <= InboundArrivalDateTimeTo)
                                                    )).ToList();

            foreach (Itinerary i in filterItineries)
            {
                i.PricingOptions.RemoveAll(po => !((po.Price <= maxPrice && po.Price != 0) || maxPrice == null) || !((po.Price >= minPrice && po.Price != 0) || minPrice == null));
            }

            var filterLegs = Legs.Where(l => filterItineries.Any(i => i.OutboundLegId == l.Id || i.InboundLegId == l.Id)).ToList();

            var filterSegments = Segments.Where(s => filterLegs.Any(fl => fl.SegmentIds.Contains(s.Id))).ToList();

            var filterLegPlaces = Places.Where(p => filterLegs.Any(l => l.OriginStation == p.Id || l.DestinationStation == p.Id)).ToList();

            var filterSegmentPlaces = Places.Where(p => filterSegments.Any(s => s.OriginStation == p.Id || s.DestinationStation == p.Id)).ToList();

            var filterPlaces = filterLegPlaces.Union(filterSegmentPlaces, new DND.Common.Helpers.Comparer <Place>((p1, p2) => p1.Id == p2.Id)).ToList();

            List <Place> newPlaces = new List <Place>();

            foreach (Place fp in filterPlaces)
            {
                if (fp.ParentId != 0)
                {
                    fp.ParentPlace = Places.Where(p => p.Id == fp.ParentId).FirstOrDefault();
                    if (!newPlaces.Any(p => p.Id == fp.ParentId))
                    {
                        newPlaces.Add(fp.ParentPlace);
                    }

                    if (fp.ParentPlace.ParentId != 0 && fp.ParentPlace.ParentPlace == null)
                    {
                        fp.ParentPlace.ParentPlace = Places.Where(p => p.Id == fp.ParentPlace.ParentId).FirstOrDefault();
                        if (!newPlaces.Any(p => p.Id == fp.ParentPlace.ParentId))
                        {
                            newPlaces.Add(fp.ParentPlace.ParentPlace);
                        }
                    }
                }
            }

            filterPlaces = filterPlaces.Union(newPlaces, new DND.Common.Helpers.Comparer <Place>((p1, p2) => p1.Id == p2.Id)).ToList();

            foreach (Segment s in filterSegments)
            {
                if (s.OriginPlace != null)
                {
                    s.OriginAirport     = s.OriginPlace.Name;
                    s.OriginAirportCode = s.OriginPlace.Code;
                    var originAirport = new AirportService().GetByIATA(s.OriginPlace.Code);
                    if (originAirport != null)
                    {
                        s.OriginAirportLatitude  = originAirport.LatitudeDecimalDegrees;
                        s.OriginAirportLongitude = originAirport.LongitudeDecimalDegrees;
                    }

                    s.OriginCity    = s.OriginPlace.ParentPlace.Name;
                    s.OriginCountry = s.OriginPlace.ParentPlace.ParentPlace.Name;
                }
                if (s.DestinationPlace != null)
                {
                    s.DestinationAirport     = s.DestinationPlace.Name;
                    s.DestinationAirportCode = s.DestinationPlace.Code;
                    var destinationAirport = new AirportService().GetByIATA(s.DestinationPlace.Code);
                    if (destinationAirport != null)
                    {
                        s.DestinationAirportLatitude  = destinationAirport.LatitudeDecimalDegrees;
                        s.DestinationAirportLongitude = destinationAirport.LongitudeDecimalDegrees;
                    }

                    s.DestinationCity    = s.DestinationPlace.ParentPlace.Name;
                    s.DestinationCountry = s.DestinationPlace.ParentPlace.ParentPlace.Name;
                }

                TimeSpan dt = TimeSpan.FromMinutes(s.Duration);
                s.DurationHourMinuteFormatted = ((dt.Days * 24) + dt.Hours).ToString() + "h " + dt.Minutes.ToString() + "m";
                s.DepartureDateFormattedLong  = s.DepartureDateTimeConverted.ToString(DateFormatLong);
                s.DepartureDateFormattedShort = s.DepartureDateTimeConverted.ToString(DateFormatShort);
                s.DepartureTimeFormatted      = s.DepartureDateTimeConverted.ToString(TimeFormat);
                s.ArrivalDateFormattedLong    = s.ArrivalDateTimeConverted.ToString(DateFormatLong);
                s.ArrivalDateFormattedShort   = s.ArrivalDateTimeConverted.ToString(DateFormatShort);
                s.ArrivalTimeFormatted        = s.ArrivalDateTimeConverted.ToString(TimeFormat);

                s.OriginFormatted      = s.OriginAirport + ", " + s.OriginAirportCode + " (" + s.OriginCountry + ")";
                s.DestinationFormatted = s.DestinationAirport + ", " + s.DestinationAirportCode + " (" + s.DestinationCountry + ")";
            }

            foreach (Leg l in filterLegs)
            {
                List <Carrier> legCarriers = new List <Carrier>();
                List <Segment> legSegments = new List <Segment>();
                foreach (int sId in l.SegmentIds)
                {
                    var segment = filterSegments.Where(s => s.Id == sId).FirstOrDefault();
                    legSegments.Add(segment);
                }

                foreach (int cId in l.Carriers)
                {
                    var carrier = Carriers.Where(c => c.Id == cId).FirstOrDefault();
                    legCarriers.Add(carrier);
                }
                l.CarrierObjects = legCarriers;
                l.Segments       = legSegments;

                l.OriginPlace      = filterPlaces.Where(p => p.Id == l.OriginStation).FirstOrDefault();
                l.DestinationPlace = filterPlaces.Where(p => p.Id == l.DestinationStation).FirstOrDefault();

                l.OriginAirport     = l.OriginPlace.Name;
                l.OriginAirportCode = l.OriginPlace.Code;
                var originAirport = new AirportService().GetByIATA(l.OriginPlace.Code);
                if (originAirport != null)
                {
                    l.OriginAirportLatitude  = originAirport.LatitudeDecimalDegrees;
                    l.OriginAirportLongitude = originAirport.LongitudeDecimalDegrees;
                }

                l.OriginCity    = l.OriginPlace.ParentPlace.Name;
                l.OriginCountry = l.OriginPlace.ParentPlace.ParentPlace.Name;

                l.DestinationAirport     = l.DestinationPlace.Name;
                l.DestinationAirportCode = l.DestinationPlace.Code;
                var destinationAirport = new AirportService().GetByIATA(l.DestinationPlace.Code);
                if (destinationAirport != null)
                {
                    l.DestinationAirportLatitude  = destinationAirport.LatitudeDecimalDegrees;
                    l.DestinationAirportLongitude = destinationAirport.LongitudeDecimalDegrees;
                }
                l.DestinationCity    = l.DestinationPlace.ParentPlace.Name;
                l.DestinationCountry = l.DestinationPlace.ParentPlace.ParentPlace.Name;
                l.StopCount          = l.Stops.Count();

                l.DepartureDateTimeConverted = DateTime.Parse(l.Departure);
                l.ArrivalDateTimeConverted   = DateTime.Parse(l.Arrival);
                TimeSpan dt = TimeSpan.FromMinutes(l.Duration);
                l.DurationHourMinuteFormatted = ((dt.Days * 24) + dt.Hours).ToString() + "h " + dt.Minutes.ToString() + "m";
                if (l.StopCount == 0)
                {
                    l.DurationHourMinuteFormatted = l.DurationHourMinuteFormatted + ", Direct";
                }

                l.DepartureDateFormattedLong  = l.DepartureDateTimeConverted.ToString(DateFormatLong);
                l.DepartureDateFormattedShort = l.DepartureDateTimeConverted.ToString(DateFormatShort);
                l.DepartureTimeFormatted      = l.DepartureDateTimeConverted.ToString(TimeFormat);
                l.ArrivalDateFormattedLong    = l.ArrivalDateTimeConverted.ToString(DateFormatLong);
                l.ArrivalDateFormattedShort   = l.ArrivalDateTimeConverted.ToString(DateFormatShort);
                l.ArrivalTimeFormatted        = l.ArrivalDateTimeConverted.ToString(TimeFormat);

                l.OriginFormatted      = l.OriginAirport + ", " + l.OriginAirportCode + " (" + l.OriginCountry + ")";
                l.DestinationFormatted = l.DestinationAirport + ", " + l.DestinationAirportCode + " (" + l.DestinationCountry + ")";
            }

            foreach (Itinerary i in filterItineries)
            {
                if (i.OutboundLegId != null && i.OutboundLegId != "")
                {
                    i.OutboundLeg = filterLegs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault();

                    i.OutboundOriginPlace      = filterPlaces.Where(p => p.Id == (Legs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault().OriginStation)).FirstOrDefault();
                    i.OutboundDestinationPlace = filterPlaces.Where(p => p.Id == (Legs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault().DestinationStation)).FirstOrDefault();

                    i.OutboundDepartureDateTime           = filterLegs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault().DepartureDateTimeConverted;
                    i.OutboundArrivalDateTime             = filterLegs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault().ArrivalDateTimeConverted;
                    i.OutboundStopCount                   = filterLegs.Where(l => l.Id == i.OutboundLegId).FirstOrDefault().Stops.Count();
                    i.OutboundCarriers                    = i.OutboundLeg.CarrierObjects;
                    i.OutboundDuration                    = i.OutboundLeg.Duration;
                    i.OutboundDurationHourMinuteFormatted = i.OutboundLeg.DurationHourMinuteFormatted;

                    i.OutboundDepartureDateFormattedLong  = i.OutboundLeg.DepartureDateFormattedLong;
                    i.OutboundDepartureDateFormattedShort = i.OutboundLeg.DepartureDateFormattedShort;
                    i.OutboundDepartureTimeFormatted      = i.OutboundLeg.DepartureTimeFormatted;

                    i.OutboundArrivalDateFormattedLong  = i.OutboundLeg.ArrivalDateFormattedLong;
                    i.OutboundArrivalDateFormattedShort = i.OutboundLeg.ArrivalDateFormattedShort;
                    i.OutboundArrivalTimeFormatted      = i.OutboundLeg.ArrivalTimeFormatted;

                    i.OutboundOriginFormatted      = i.OutboundLeg.OriginFormatted;
                    i.OutboundDestinationFormatted = i.OutboundLeg.DestinationFormatted;
                }
                if (i.InboundLegId != null && i.InboundLegId != "")
                {
                    i.ReturnFlight = true;
                    i.InboundLeg   = filterLegs.Where(l => l.Id == i.InboundLegId).FirstOrDefault();

                    i.InboundOriginPlace      = filterPlaces.Where(p => p.Id == (Legs.Where(l => l.Id == i.InboundLegId).FirstOrDefault().OriginStation)).FirstOrDefault();
                    i.InboundDestinationPlace = filterPlaces.Where(p => p.Id == (Legs.Where(l => l.Id == i.InboundLegId).FirstOrDefault().DestinationStation)).FirstOrDefault();

                    i.InboundDepartureDateTime           = filterLegs.Where(l => l.Id == i.InboundLegId).FirstOrDefault().DepartureDateTimeConverted;
                    i.InboundArrivalDateTime             = filterLegs.Where(l => l.Id == i.InboundLegId).FirstOrDefault().ArrivalDateTimeConverted;
                    i.InboundStopCount                   = filterLegs.Where(l => l.Id == i.InboundLegId).FirstOrDefault().Stops.Count();
                    i.InboundCarriers                    = i.InboundLeg.CarrierObjects;
                    i.InboundDuration                    = i.InboundLeg.Duration;
                    i.InboundDurationHourMinuteFormatted = i.InboundLeg.DurationHourMinuteFormatted;

                    i.InboundDepartureDateFormattedLong  = i.InboundLeg.DepartureDateFormattedLong;
                    i.InboundDepartureDateFormattedShort = i.InboundLeg.DepartureDateFormattedShort;
                    i.InboundDepartureTimeFormatted      = i.InboundLeg.DepartureTimeFormatted;

                    i.InboundArrivalDateFormattedLong  = i.InboundLeg.ArrivalDateFormattedLong;
                    i.InboundArrivalDateFormattedShort = i.InboundLeg.ArrivalDateFormattedShort;
                    i.InboundArrivalTimeFormatted      = i.InboundLeg.ArrivalTimeFormatted;

                    i.InboundOriginFormatted      = i.InboundLeg.OriginFormatted;
                    i.InboundDestinationFormatted = i.InboundLeg.DestinationFormatted;
                }

                foreach (PricingOption p in i.PricingOptions)
                {
                    p.PriceFormatted        = p.Price.ToString();
                    p.PriceRounded          = (int)Math.Round(p.Price, 0, MidpointRounding.AwayFromZero);
                    p.PriceRoundedFormatted = p.PriceRounded.ToString();

                    if (searchCurrency != null)
                    {
                        string space = "";
                        if (searchCurrency.SpaceBetweenAmountAndSymbol)
                        {
                            space = " ";
                        }

                        p.PriceFormatted = String.Format("{0:#" + searchCurrency.ThousandsSeparator + "##0" + searchCurrency.DecimalSeparator + "#0}", Math.Round(p.Price, searchCurrency.DecimalDigits));

                        if (searchCurrency.SymbolOnLeft)
                        {
                            p.PriceFormatted = searchCurrency.Symbol + space + p.PriceFormatted;
                        }
                        else
                        {
                            p.PriceFormatted = p.PriceFormatted + space + searchCurrency.Symbol;
                        }

                        p.PriceRounded          = (int)Math.Round(p.Price, searchCurrency.RoundingCoefficient, MidpointRounding.AwayFromZero);
                        p.PriceRoundedFormatted = String.Format("{0:#" + searchCurrency.ThousandsSeparator + "##0" + searchCurrency.DecimalSeparator + "##}", p.PriceRounded);

                        if (searchCurrency.SymbolOnLeft)
                        {
                            p.PriceRoundedFormatted = searchCurrency.Symbol + space + p.PriceRoundedFormatted;
                        }
                        else
                        {
                            p.PriceRoundedFormatted = p.PriceRoundedFormatted + space + searchCurrency.Symbol;
                        }
                    }
                }

                var bestPricingOption = i.PricingOptions.OrderBy(po => po.Price).ThenBy(po => po.QuoteAgeInMinutes).FirstOrDefault();
                i.BestPrice                 = bestPricingOption.Price;
                i.BestPriceRounded          = bestPricingOption.PriceRounded;
                i.BestPriceFormatted        = bestPricingOption.PriceFormatted;
                i.BestPriceRoundedFormatted = bestPricingOption.PriceRoundedFormatted;

                i.DeeplinkUrl = bestPricingOption.DeeplinkUrl;

                var bestPricingAgent = Agents.Where(a => a.Id == bestPricingOption.Agents.FirstOrDefault()).FirstOrDefault();
                i.BestPriceAgent = bestPricingAgent;
                i.Agent          = bestPricingAgent.Name;
                i.AgentImageUrl  = bestPricingAgent.ImageUrl;

                i.OutboundOriginAirport      = i.OutboundOriginPlace.Name;
                i.OutboundOriginAirportPlace = i.OutboundOriginPlace;

                i.OutboundOriginAirportCode = i.OutboundOriginPlace.Code;
                var outboundOriginAirport = await flightSearhEngine.GetAirportByIDAsync(i.OutboundOriginPlace.Code, cancellationToken);

                if (outboundOriginAirport != null)
                {
                    i.OutboundOriginAirportLatitude  = outboundOriginAirport.Latitude;
                    i.OutboundOriginAirportLongitude = outboundOriginAirport.Longitude;
                }
                i.OutboundOriginCity      = i.OutboundOriginPlace.ParentPlace.Name;
                i.OutboundOriginCityPlace = i.OutboundOriginPlace.ParentPlace;

                var outboundOriginCity = await flightSearhEngine.GetCityByIDAsync(i.OutboundOriginCityPlace.Code, cancellationToken);

                if (outboundOriginCity != null)
                {
                    i.OutboundOriginCityLatitude  = outboundOriginCity.Latitude;
                    i.OutboundOriginCityLongitude = outboundOriginCity.Longitude;
                }

                i.OutboundOriginCountry      = i.OutboundOriginPlace.ParentPlace.ParentPlace.Name;
                i.OutboundOriginCountryPlace = i.OutboundOriginPlace.ParentPlace.ParentPlace;

                i.OutboundDestinationAirport      = i.OutboundDestinationPlace.Name;
                i.OutboundDestinationAirportPlace = i.OutboundDestinationPlace;
                i.OutboundDestinationAirportCode  = i.OutboundDestinationPlace.Code;
                var outboundDestinationAirport = await flightSearhEngine.GetAirportByIDAsync(i.OutboundDestinationPlace.Code, cancellationToken);

                if (outboundDestinationAirport != null)
                {
                    i.OutboundDestinationAirportLatitude  = outboundDestinationAirport.Latitude;
                    i.OutboundDestinationAirportLongitude = outboundDestinationAirport.Longitude;
                }
                i.OutboundDestinationCity      = i.OutboundDestinationPlace.ParentPlace.Name;
                i.OutboundDestinationCityPlace = i.OutboundDestinationPlace.ParentPlace;

                var outboundDestinationCity = await flightSearhEngine.GetCityByIDAsync(i.OutboundDestinationCityPlace.Code, cancellationToken);

                if (outboundDestinationCity != null)
                {
                    i.OutboundDestinationCityLatitude = outboundDestinationCity.Latitude;
                    i.OutboundDestinationCityLatitude = outboundDestinationCity.Longitude;
                }

                i.OutboundDestinationCountry      = i.OutboundDestinationPlace.ParentPlace.ParentPlace.Name;
                i.OutboundDestinationCountryPlace = i.OutboundDestinationPlace.ParentPlace.ParentPlace;


                if (i.InboundLegId != null && i.InboundLegId != "")
                {
                    i.InboundOriginAirport      = i.InboundOriginPlace.Name;
                    i.InboundOriginAirportPlace = i.InboundOriginPlace;

                    i.InboundOriginAirportCode = i.InboundOriginPlace.Code;
                    var inboundOriginAirport = await flightSearhEngine.GetAirportByIDAsync(i.InboundOriginPlace.Code, cancellationToken);

                    if (inboundOriginAirport != null)
                    {
                        i.InboundOriginAirportLatitude  = inboundOriginAirport.Latitude;
                        i.InboundOriginAirportLongitude = inboundOriginAirport.Longitude;
                    }
                    i.InboundOriginCity      = i.InboundOriginPlace.ParentPlace.Name;
                    i.InboundOriginCityPlace = i.InboundOriginPlace.ParentPlace;


                    var inboundOriginCity = await flightSearhEngine.GetCityByIDAsync(i.InboundOriginCityPlace.Code, cancellationToken);

                    if (inboundOriginCity != null)
                    {
                        i.InboundOriginCityLatitude  = inboundOriginCity.Latitude;
                        i.InboundOriginCityLongitude = inboundOriginCity.Longitude;
                    }

                    i.InboundOriginCountry      = i.InboundOriginPlace.ParentPlace.ParentPlace.Name;
                    i.InboundOriginCountryPlace = i.InboundOriginPlace.ParentPlace.ParentPlace;

                    i.InboundDestinationAirport      = i.InboundDestinationPlace.Name;
                    i.InboundDestinationAirportPlace = i.InboundDestinationPlace;
                    i.InboundDestinationAirportCode  = i.InboundDestinationPlace.Code;
                    var inboundDestinationAirport = await flightSearhEngine.GetAirportByIDAsync(i.InboundDestinationPlace.Code, cancellationToken);

                    if (inboundDestinationAirport != null)
                    {
                        i.InboundDestinationAirportLatitude  = inboundDestinationAirport.Latitude;
                        i.InboundDestinationAirportLongitude = inboundDestinationAirport.Longitude;
                    }
                    i.InboundDestinationCity      = i.InboundDestinationPlace.ParentPlace.Name;
                    i.InboundDestinationCityPlace = i.InboundDestinationPlace.ParentPlace;

                    var inboundDestinationCity = await flightSearhEngine.GetCityByIDAsync(i.InboundDestinationCityPlace.Code, cancellationToken);

                    if (inboundDestinationCity != null)
                    {
                        i.InboundDestinationCityLatitude  = inboundDestinationCity.Latitude;
                        i.InboundDestinationCityLongitude = inboundDestinationCity.Longitude;
                    }

                    i.InboundDestinationCountry      = i.InboundDestinationPlace.ParentPlace.ParentPlace.Name;
                    i.InboundDestinationCountryPlace = i.InboundDestinationPlace.ParentPlace.ParentPlace;
                }
            }

            var filterLegCarriers = Carriers.Where(c => filterLegs.Any(l => l.Carriers.Contains(c.Id))).ToList();

            var filterSegmentCarriers = Carriers.Where(c => filterSegments.Any(s => s.Carrier == c.Id)).ToList();

            var filterCarriers = filterLegCarriers.Union(filterSegmentCarriers, new DND.Common.Helpers.Comparer <Carrier>((c1, c2) => c1.Id == c2.Id)).ToList();

            var filterAgents = Agents.Where(a => filterItineries.Any(i => i.PricingOptions.Any(po => po.Agents.Contains(a.Id)))).ToList();

            LivePricesServiceResponse filterObject = new LivePricesServiceResponse();

            filterObject.SessionKey  = SessionKey;
            filterObject.Query       = Query;
            filterObject.Status      = Status;
            filterObject.Itineraries = filterItineries;
            filterObject.Legs        = filterLegs;
            filterObject.Segments    = filterSegments;
            filterObject.Carriers    = filterCarriers;
            filterObject.Agents      = filterAgents;
            filterObject.Places      = filterPlaces;
            filterObject.Currencies  = filterCurrencies;

            return(filterObject);
        }