public async Task <FlightPlan> Get(string id) { //search in internal fligthPlans FlightPlan fp = flightsManager.GetFlight(id); //search in external fligthPlans foreach (Server server in serverManager.GetAllServers()) { //if fp has been found if (fp != null) { break; } string URL = server.ServerURL; if (server.ServerURL[server.ServerURL.Length - 1] == '/') { URL = server.ServerURL.Substring(0, server.ServerURL.Length - 1); } //building Get request to synchronized servers string request = URL + ":" + server.ServerId + "/api/FlightPlan/" + id; fp = await Task.Run(() => DowonloadWebsite(request)); } return(fp); }
public ActionResult <IEnumerable <Server> > GetServers() { var servers = serverManager.GetAllServers().ToArray(); if (servers.Length == 0) // No servers { return(NotFound()); } else { return(Ok(servers)); } }
public async Task <IEnumerable <Flight> > GetAllFlight([FromQuery(Name = "relative_to")] string relative_to, [FromQuery(Name = "sync_all")] string sync_all) { DateTime data = DateTime.ParseExact(relative_to, "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture); List <Flight> flights = new List <Flight>(); IEnumerable <FlightPlan> flightPlan = flightsManager.GetAllFlightPlans(); //find all the internal flights foreach (FlightPlan item in flightPlan) { DateTime startTime = DateTime.ParseExact(item.initial_location.date_time, "yyyy-MM-ddTHH:mm:ssZ", System.Globalization.CultureInfo.InvariantCulture); DateTime timespan = startTime; double timeInSegment; bool hasCreated = false; List <Segment> flightSegments = item.segments.ToList(); //create the rigth flight out of right segment of fp for (var i = 0; i < flightSegments.Count && hasCreated == false; i++) { timeInSegment = data.Subtract(timespan).TotalSeconds; timespan = timespan.AddSeconds(flightSegments[i].timespan_seconds); hasCreated = newFlight(item, startTime, data, timespan, flightSegments, i, timeInSegment, flights); } } //find all the external flights if (Request.QueryString.ToString().Contains("sync_all")) { //if there are no synchronized servers IEnumerable <Server> servers = serverManager.GetAllServers(); if (servers == null) { return(flights); } await syncRequest(servers, flights, relative_to); } return(flights); }
public IEnumerable <Server> Get() { return(serverManager.GetAllServers()); }