public Ruta(Resumen resumen, IEnumerable <DatosRuta> rutas, List <string> ciudades, string weather_origen, string weather_destino) { resumenViaje = resumen; listaRutas = rutas; listaCiudades = ciudades; tiempo_origen = weather_origen; tiempo_destino = weather_destino; }
public static async Task <Ruta> ApiRequest(string origen, string destino) { string[,] matrizTiempos = new string[10, 10]; matrizTiempos = Webscrapping.EjecutarTiempo(); string[,] matrizCoordenadas = new string[10, 10]; matrizCoordenadas = Webscrapping.EjecutarCoordenadas(); string coordenadas = Coordenadas.CambiaACoordenadas(origen, destino, matrizCoordenadas); if (coordenadas == ":" || coordenadas == "Coordenadas indeterminadas") { throw new Exception("Las ciudades introducidas no existen, revise los nombres: " + origen + " " + destino); } string ciudad = Coordenadas.CambiaACiudad(coordenadas, matrizCoordenadas); using (HttpClient client = new HttpClient()) { HttpResponseMessage responseMessage = await client.GetAsync("https://api.tomtom.com/routing/1/calculateRoute/" + coordenadas + "/json?maxAlternatives=2&instructionsType=coded&avoid=unpavedRoads&key=QNDSKoghJXsfleTToOkVBTPLwkaYbauA"); HttpContent httpcontent = responseMessage.Content; string content = await httpcontent.ReadAsStringAsync(); JObject jObject = JObject.Parse(content); JToken jRutas = jObject["routes"]; Resumen resumen = new Resumen(jRutas.Values("summary")); IEnumerable <JToken> rutas = jRutas.Values("guidance").Values("instructions"); List <DatosRuta> listaRutas = new List <DatosRuta>(); foreach (JToken jRuta in rutas) { listaRutas.Add(new DatosRuta(jRuta)); } List <string> coords = listaRutas[0].coordenadas; List <string> ciudades = new List <string>(); string tiempo_origen = Coordenadas.TiempoCiudad(origen, matrizTiempos); string tiempo_destino = Coordenadas.TiempoCiudad(destino, matrizTiempos); for (int i = 0; i < coords.Count; i++) { ciudades.Add(Coordenadas.CambiaACiudad(coords[i], matrizCoordenadas)); } return(new Ruta(resumen, listaRutas, ciudades, tiempo_origen, tiempo_destino)); } }