/* * return all the flight that's on air. * if sync all appear in the url then the server ask for flight from external servers. */ public async Task <ActionResult <List <Flight> > > GetFlights( [FromQuery(Name = "relative_to")] string relativTo) { Dictionary <string, string> flightToServer = new Dictionary <string, string>(); bool syncAll = Request.Query.ContainsKey("sync_all"); List <Flight> flights = new List <Flight>(); await foreach (FlightPlan fp in _fpDb.LoadAllFP()) { if (!fp.IsValid()) { continue; } if (fp.IsOnAir(DateTime.Parse(relativTo).ToUniversalTime())) { flights.Add(fp.ConvertToFlight( DateTime.Parse(relativTo).ToUniversalTime(), false)); } } if (syncAll) { return(await HandleExternalServers(relativTo, flightToServer, flights)); } await AddFlightsToServers(flightToServer); return(flights); }