/* * handle the external servers. */ private async Task <ActionResult <List <Flight> > > HandleExternalServers(string relativTo, Dictionary <string, string> flightToServer, List <Flight> flights) { string resp; List <Flight> serverFlights; foreach (Server server in await _serverDb.LoadAllServers()) { HttpResponseMessage response; try { response = await _client.GetAsync(server.Url + "/api/Flights?relative_to=" + relativTo); } catch (Exception) { return(StatusCode(500, "cant get respone from other server")); } if (response.IsSuccessStatusCode) { resp = await response.Content.ReadAsStringAsync(); serverFlights = JsonConvert.DeserializeObject <List <Flight> >(resp); } else { return(StatusCode(500, "problem in the response of other server")); } if (!HandleOutFlights(serverFlights, server.Id, flightToServer)) { return(StatusCode(500, "get invalid flight from other server")); } flights.AddRange(serverFlights); } await AddFlightsToServers(flightToServer); return(flights); }
/* * return all the servers that connected to the server. */ public async Task <List <Server> > GetServers() { return(await _serverDb.LoadAllServers()); }