private List <Flight> CreateExternalFlights(string relative_to)
        {
            List <Flight> externalFlights = new List <Flight>();

            foreach (Server s in context.Server)
            {
                string get = s.ServerURL + "api/Flights?relative_to=" + relative_to;

                try
                {
                    externalFlights = LocalLibrary.GetFlightFromServer <List <Flight> >(get);
                }
                catch (Exception)
                {
                    continue;
                }
                foreach (Flight f in externalFlights)
                {
                    f.IsExternal = true;
                    // Save the server that the current flight belongs to him.
                    FlightDbContext.ServerID[f.FlightID] = s;
                }
            }
            context.SaveChanges();
            return(externalFlights);
        }
        public async Task <ActionResult <FlightPlan> > GetFlightPlan(string id)
        {
            var loc = await context.FirstLoc.ToListAsync();

            var seg = await context.Segments.ToListAsync();

            var flightPlan = await context.FlightPlan.FindAsync(id);

            if (flightPlan != null)
            {
                flightPlan.InitialLocation = loc.Where(a => a.ID.CompareTo(id) == 0).First();
                flightPlan.Segments        = seg.Where(a => a.ID.CompareTo(id) == 0).ToList();
                return(flightPlan);
            }
            // Ask only the relevant server.
            try
            {
                var s = FlightDbContext.ServerID[id];
                if (s == null)
                {
                    return(NotFound());
                }
                string get = s.ServerURL + "api/FlightPlan/" + id;
                flightPlan = LocalLibrary.GetFlightFromServer <FlightPlan>(get);
                if (flightPlan == null)
                {
                    return(NotFound());
                }
            }
            catch (WebException)
            {
                return(NotFound());
            }
            catch (KeyNotFoundException)
            {
                return(NotFound());
            }

            return(flightPlan);
        }