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)); }