//Obtener Datos desde JSON URL: public static void ObtenerDatosJsonUrl() { int num = 1; do { try { string id = Convert.ToString(num); string url = $"https://restcountries.eu/rest/v2/callingcode/{id}"; //Se agrega el id del URL pasado por parametro WebClient wc = new WebClient(); //Establece la conexion. string jsonurl = wc.DownloadString(url); //sirve para que podamos extraer los datos y guardarlos List <Root> listaPais = JsonConvert.DeserializeObject <List <Root> >(jsonurl); string nombre = "", codigo = "", capital = "", region = ""; int poblacion = 0; double latitud = 0, longitud = 0; Pais pais1 = null; int contador = 0; foreach (Root pais in listaPais) { nombre = pais.name; codigo = pais.cioc; capital = pais.capital; region = pais.region; poblacion = Int32.Parse(pais.population); foreach (string item in pais.latlng) { if (contador == 0) { latitud = Double.Parse(item.ToString()); } else { longitud = Double.Parse(item.ToString()); } contador++; } pais1 = new Pais(nombre, codigo, capital, region, poblacion, latitud, longitud); } Pais paisRegistro = buscarOnePais(pais1.Codigo); if (paisRegistro == null) //Si es Nulo no esta en la BD { insertarPais(pais1); Console.WriteLine($"Pais {num} Insertado con Exito en la BD."); Console.WriteLine(""); } else //Caso contrario lo Actualiza { actualizarPais(pais1, pais1.Codigo); Console.WriteLine($"Pais {num} Actualizado con Exito en la BD."); Console.WriteLine(""); } num++; //Si todo es correcto dentro del try incrementamos el contado num } catch (Exception e) //Si no tiene datos el JSON id, atrapa la Excepcion. { Console.WriteLine($"El URL Id {num}, no contiene datos."); Console.WriteLine(""); num++; //Si no es corrrecto Incrementamos el contador num. } } while (num < 301); }
//Metodo Opcion 2 recorrer con una lista: //Obtener Datos desde JSON URL: public static void ObtenerDatosJsonUrlList() { int num = 1; do { try { string id = Convert.ToString(num); string url = $"https://restcountries.eu/rest/v2/callingcode/{id}"; //Se agrega el id del URL pasado por parametro WebClient wc = new WebClient(); //Establece la conexion. string jsonurl = wc.DownloadString(url); //sirve para que podamos extraer los datos y guardarlos List <Root> listaPais = JsonConvert.DeserializeObject <List <Root> >(jsonurl); //Se Pasa como List<> Ya que el Json URL esta entre corchetes Array string nombre = "", codigo = "", capital = "", region = ""; int poblacion = 0; double latitud = 0, longitud = 0; Pais pais1 = null; int contador = 0; List <Pais> lista = new List <Pais>(); //Creo una List<Pais> nueva para almacenar despues los reguistros obtenidos de la BD foreach (Root pais in listaPais) { nombre = pais.name; codigo = pais.cioc; capital = pais.capital; region = pais.region; poblacion = Int32.Parse(pais.population); foreach (string item in pais.latlng) { if (contador == 0) { latitud = Double.Parse(item.ToString()); } else { longitud = Double.Parse(item.ToString()); } contador++; } pais1 = new Pais(nombre, codigo, capital, region, poblacion, latitud, longitud); } lista = buscarAllPais(); //Obtengo Todos Los Registros. bool validar = false; if (lista.Count > 0) //Si tiene algun registro. { foreach (Pais item in lista) { if (item.Codigo.Equals(pais1.Codigo)) //Si el codigo existe { validar = true; break; } else // Si el codigo no existe. { validar = false; } } if (validar == true) { actualizarPais(pais1, pais1.Codigo); Console.WriteLine($"Pais {num} Actualizado con Exito en la BD."); Console.WriteLine(""); } else { insertarPais(pais1); Console.WriteLine($"Pais {num} Insertado con Exito en la BD."); Console.WriteLine(""); } } else { insertarPais(pais1); Console.WriteLine($"Pais {num} Insertado con Exito en la BD."); Console.WriteLine(""); } num++; //Si todo es correcto dentro del try incrementamos el contado num } catch (Exception e) //Si no tiene datos el JSON id, atrapa la Excepcion. { Console.WriteLine($"El URL Id {num}, no contiene datos."); Console.WriteLine(""); num++; //Si no es corrrecto Incrementamos el contador num. } } while (num < 301); }
//Metodo para Obtener todos los paises: public static List <Pais> buscarAllPais() { Pais pais = null; List <Pais> listaPais = new List <Pais>(); MySqlDataReader reader = null; MySqlCommand comando = null; MySqlConnection conexion = null; Conexion con = new Conexion(); try { conexion = con.getConnection(); //metodo getConnection, logueamos el usuario. if (conexion != null) { string query = "SELECT idPais, nombrePais, codigo, capital, region, poblacion, latitud, longitud FROM pais"; conexion.Open(); comando = new MySqlCommand(query, conexion); //Pasamos el query con el comando. reader = comando.ExecuteReader(); //Ejecutamos la CONSULTA de datos y guardamos los mismos en el objeto READER. if (reader.HasRows) //verificamos si existen filas. { while (reader.Read()) { int idPais = reader.GetInt32(0); //tambien se puede pasar como parametro el nombre de la columna ej ("idProducto") string nombre = reader.GetString(1); string codigo = reader.GetString(2); string capital = reader.GetString(3); string region = reader.GetString(4); int poblacion = reader.GetInt32(5); double latitud = reader.GetDouble(6); double longitud = reader.GetDouble(7); pais = new Pais(idPais, nombre, codigo, capital, region, poblacion, latitud, longitud); listaPais.Add(pais); //Guardamos el Objeto en la lista } //Console.WriteLine("Registro leido con Exito de la Base de Datos."); //Console.WriteLine(); } else { //Console.WriteLine("Error. No se encontraron Datos."); //Console.WriteLine(); } } else { Console.WriteLine("Error. No fue posible leer el Registro de la Base de Datos"); Console.WriteLine(); } } catch (MySqlException ex) { Console.WriteLine("Error. " + ex.Message); Console.WriteLine(); } finally { conexion.Close(); } return(listaPais); }