private static FlightInformation GenerateFlightInformation(Flight flight, int adults, int children, int infants) { string originTimeZoneKey = flight.RouteAircraft.Route.Origin.City.TimeZone; string destinationTimeZoneKey = flight.RouteAircraft.Route.Destination.City.TimeZone; List <ClassPricingScheme> pricingSchemes = JsonConvert.DeserializeObject <List <ClassPricingScheme> >(flight.RouteAircraft.Route.PricingScheme); return(new FlightInformation { FlightId = flight.FlightId, Origin = Mapper.AirportToDto(flight.RouteAircraft.Route.Origin), Destination = Mapper.AirportToDto(flight.RouteAircraft.Route.Destination), Airline = flight.RouteAircraft.Route.Airline.Name, AirlineLogoFilename = flight.RouteAircraft.Route.Airline.LogoFilename, Date = flight.ScheduledDeparture.Date, DepartureTime = flight.ScheduledDeparture.TimeOfDay, ArrivalTime = ArrivalTimeService.Calculate(flight.ScheduledDeparture, flight.RouteAircraft.FlightDuration, originTimeZoneKey, destinationTimeZoneKey).TimeOfDay, FlightDuration = TimeSpan.FromMinutes(flight.RouteAircraft.FlightDuration), FlightNumber = flight.FlightNumber, AircraftType = flight.RouteAircraft.Aircraft.Model, TicketPrices = TicketPriceService.Calculate(pricingSchemes, adults, children, infants), TravelClasses = pricingSchemes.Select(ps => new TravelClassDto { TravelClassCode = ps.TravelClassCode, TravelClassName = ps.TravelClassName }).ToList() }); }
public async Task <ActionResult <List <AirportDto> > > Search(string query) { if (String.IsNullOrEmpty(query) || query.Length < 3) { return(new List <AirportDto>()); } IQueryable <AirportDto> airportQuery = _db.Airport .Include(a => a.City) .ThenInclude(c => c.Country) .Where(a => a.Name.Contains(query) || a.City.Name.Contains(query) || a.IataAirportCode == query) .Select(a => Mapper.AirportToDto(a)); return(await airportQuery.ToListAsync()); }