public List <ClienteEntidade> ObterEndereco() { AbrirConexao(); string query = "select cod_cliente, endereco, numero, bairro, cidade, uf, cep from DIM_CLIENTE where LATITUDE is null and ENDERECO is not null"; cmd = new SqlCommand(query, con); dr = cmd.ExecuteReader(); var lista = new List <ClienteEntidade>(); while (dr.Read()) { var c = new ClienteEntidade(); c.Cod_Cliente = (int)dr["COD_CLIENTE"]; string endereco = dr["Endereco"].ToString(); string numero = dr["Numero"].ToString(); string bairro = dr["Bairro"].ToString(); string cidade = dr["Cidade"].ToString(); string UF = dr["UF"].ToString(); string CEP = dr["CEP"].ToString(); c.EnderecoCompleto = $"{endereco}, {numero} - {bairro}, {cidade} - {UF}, {CEP}"; lista.Add(c); } FecharConexao(); return(lista); }
public void ObterCoordenadas() { var rep = new Repositorio(); List <ClienteEntidade> lista = rep.ObterEndereco(); int contador = 0, acerto = 0, naoEncontrado = 0, erro = 0, total = lista.Count; foreach (var item in lista) { contador++; try { var c = new ClienteEntidade(); c.Cod_Cliente = item.Cod_Cliente; var requestUri = string.Format("https://maps.googleapis.com/maps/api/geocode/xml?address={0}&key=API", Uri.EscapeDataString(item.EnderecoCompleto)); var request = WebRequest.Create(requestUri); var response = request.GetResponse(); var xdoc = XDocument.Load(response.GetResponseStream()); string status = xdoc.Element("GeocodeResponse").Element("status").Value; if (status == "OK") { var result = xdoc.Element("GeocodeResponse").Element("result"); var locationElement = result.Element("geometry").Element("location"); c.Latitude = locationElement.Element("lat").Value; c.Longitude = locationElement.Element("lng").Value; rep.AtualizarTabela(c); acerto++; } else { naoEncontrado++; } Console.WriteLine($"{contador} de {total} / Cod_Cliente: {c.Cod_Cliente} / Latitude: {c.Latitude} / Longitude: {c.Longitude}"); } catch (Exception e) { Console.WriteLine(e.Message); erro++; continue; } } Console.WriteLine("-----FIM-----"); Console.WriteLine($"Acertos: {acerto} / Não Encontrado: {naoEncontrado} / Erros: {erro} / Total: {total}"); Console.ReadKey(); }
public void AtualizarTabela(ClienteEntidade c) { AbrirConexao(); string query = "update dim_cliente set Latitude = @Latitude, Longitude = @Longitude " + "where Cod_Cliente = @Cod_Cliente"; cmd = new SqlCommand(query, con); cmd.Parameters.AddWithValue("@Latitude", c.Latitude); cmd.Parameters.AddWithValue("@Longitude", c.Longitude); cmd.Parameters.AddWithValue("@Cod_Cliente", c.Cod_Cliente); cmd.ExecuteNonQuery(); FecharConexao(); }