Example #1
0
        // Get flights from all the servers in the data base.
        public async Task <FlightsFromServers> GetFlightsFromServers(List <Server> servers,
                                                                     DateTime time)
        {
            List <Flights> flights = new List <Flights>();
            bool           isError = false;

            // Get flights.
            foreach (Server server in servers.ToList())
            {
                List <Flights> flights1 = new List <Flights>();
                string         result   = await GetRequestFromServer(server, time);

                // Server did not responded.
                if (result == null)
                {
                    continue;
                }

                flights1 = CreateFlightsFromServer(result, time, server);

                // Server response is invalid.
                if (flights1 == null)
                {
                    isError = true;
                }
                else
                {
                    flights.AddRange(flights1);
                }
            }
            FlightsFromServers flightsFromServers = new FlightsFromServers(flights, isError);

            return(flightsFromServers);
        }
Example #2
0
        public async Task <ActionResult <List <Flights> > > Get([FromQuery] string relative_to)
        {
            try
            {
                string             urlRequest         = Request.QueryString.Value;
                List <Flights>     flights            = new List <Flights>();
                FlightsFromServers flightsFromServers = new FlightsFromServers(flights, false);
                if (urlRequest.Contains("sync_all"))
                {
                    flightsFromServers = await manager.GetAllFlights(relative_to, true);
                }
                else
                {
                    flightsFromServers = await manager.GetAllFlights(relative_to, false);
                }

                // At least one response in not valid.
                if (flightsFromServers.IsError)
                {
                    return(BadRequest());
                }
                return(Ok(flightsFromServers.FlightsList));
            }
            catch (Exception e)
            {
                return(NotFound(e.Message));
            }
        }
Example #3
0
        // Get all the flights from the data base and from external servers if needed.
        public async Task <FlightsFromServers> GetAllFlights(string dateTime, bool isExternal)
        {
            DateTime time = DateTime.Parse(dateTime).ToUniversalTime();

            List <Flights> flights = new List <Flights>();
            List <Server>  servers = new List <Server>();

            flights = dataAccess.GetFlights(time);
            FlightsFromServers flightsFromServersInternal = new FlightsFromServers(flights, false);

            if (isExternal)
            {
                servers.AddRange(dataAccess.GetServers());
                FlightsFromServers flightsFromServersExernal =
                    await GetFlightsFromServers(servers, time);

                flightsFromServersInternal.FlightsList.AddRange(flightsFromServersExernal.FlightsList);
                flightsFromServersInternal.IsError = flightsFromServersExernal.IsError;
                //return flightsFromServersInternal;
            }

            return(flightsFromServersInternal);
        }