public async Task <ActionResult <FlightPlan> > GetFlightPlan(string id)
        {
            List <Segment> segments   = new List <Segment>();
            var            flightPlan =
                await context.FlightPlans.Include(x => x.InitialLocation).Include(x => x.Segments)
                .Where(x => String.Equals(id, x.Id)).FirstOrDefaultAsync();

            if (flightPlan != null)
            {
                return(Ok(flightPlan));
            }
            try
            {
                var server = FlightsDbContext.externalServersFlights[id];
                if (server == null)
                {
                    return(NotFound());
                }
                string path = server.ServerURL + "/api/FlightPlan/" + id;
                flightPlan = FlightPlansManager.GetExternalFlightPlan(path);
                if (flightPlan == null)
                {
                    return(NotFound());
                }
            }
            catch (KeyNotFoundException)
            {
                return(NotFound());
            }
            return(Ok(flightPlan));
        }
 public async Task <ActionResult <FlightPlan> > PostFlightPlan(FlightPlan flightPlan)
 {
     if (!FlightPlansManager.IsValid(flightPlan))
     {
         return(BadRequest("Flight plan isn't valid"));
     }
     context.FlightPlans.Add(flightPlan);
     flightPlan.Id = Data.FlightId.GetRandomId();
     context.FlightPlans.Add(flightPlan);
     try
     {
         await context.SaveChangesAsync();
     }
     catch (DbUpdateException)
     {
         throw;
     }
     return(CreatedAtAction("GetFlightPlan", new { id = flightPlan.Id }, flightPlan));
 }