public FlightsController( ICheapestFlightFinder flightFinder, MemoryCache cache) { _flightFinder = flightFinder; _cache = cache; }
public HomeController( ICheapestFlightFinder flightFinder, MemoryCache cache, ICheapestReturnFlightsRepository cheapestReturnFlightsRepository, IClock clock) { _flightFinder = flightFinder; _cache = cache; _cheapestReturnFlightsRepository = cheapestReturnFlightsRepository; _clock = clock; }
private static async Task <IEnumerable <ReturnFlightArchive> > FetchUpdatedReturnFlights( ICheapestFlightFinder _flightFinder, IClock _clock) { var criteria = Criteria.DefaultCriteria(); var returnFlights = await _flightFinder.FindCheapestReturnFlightsForMultipleTravelDates(criteria); var currentInstant = _clock.GetCurrentInstant(); return(returnFlights.Select(x => new ReturnFlightArchive(currentInstant, x))); }
public static async Task <IEnumerable <ReturnFlight> > FindCheapestReturnFlightsForMultipleTravelDates([NotNull] this ICheapestFlightFinder cheapestFlightFinder, [NotNull] FindCheapestReturnFlightsForMultipleTravelDatesCriteria criteria) { var tasks = criteria.ReturnFlightDates .Select(x => new FindCheapestReturnFlightCriteria(criteria.FromAirport, criteria.ToAirport, x.DepartureDate, x.ReturnDate, criteria.DepartureFlightsFilter, criteria.ReturnFlightsFilter)) .Select(cheapestFlightFinder.FindCheapestReturnFlight); var results = await Task.WhenAll(tasks).ConfigureAwait(false); return(results.Where(x => x != null)); }