public async Task <ActionResult <IEnumerable <Flight> > > GetFlights([FromQuery(Name = "relative_to")] string relativeTime) { DateTime relativeTo; if (!DateTime.TryParse(relativeTime, out relativeTo)) { return(null); } //set the utc time zone relativeTo = relativeTo.ToUniversalTime(); List <Flight> flightsList = new List <Flight>(); if (Request != null && Request.Query.ContainsKey("sync_all")) { List <string> serverIdKeysList = memoryCache.Get("serverListKeys") as List <string>; if (serverIdKeysList != null) { IEnumerable <Flight> remoteflights; remoteflights = await GetFlightsRemoteServers(serverIdKeysList, relativeTime); flightsList.AddRange(remoteflights); } } //list of keys of flight plans in our server List <string> fpListOfKeys = memoryCache.Get("flightListKeys") as List <string>; if (fpListOfKeys != null) { foreach (var id in fpListOfKeys) { FlightPlan fp; fp = memoryCache.Get <FlightPlan>(id); Flight flight = flightManager.CreateUpdatedFlight(fp, relativeTo); if (flight != null) { flightsList.Add(flight); } } } return(flightsList); }