Esempio n. 1
0
        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));
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public IEnumerable <Server> Get()
 {
     return(serverManager.GetAllServers());
 }