public static Unit DesSerializedUnit(string Json)
{
string corrigido = Encoding.UTF8.GetString(
Encoding.GetEncoding("ISO-8859-1").GetBytes(Json));
return JsonConvert.DeserializeObject<Unit>(corrigido);
}
private void Txt_CEP_Leave(object sender, EventArgs e)
{
string vCep = Txt_CEP.Text;
if (string.IsNullOrEmpty(vCep)) return;
if (vCep.Length != 8)
{
LimpaDadosEndereco(true);
return;
}
if (!Information.IsNumeric(vCep))
{
LimpaDadosEndereco(true);
return;
}
var vJson = Cls_Uteis.GeraJSONCEP(vCep);
//Cep.Unit CEP = new Cep.Unit();
Cep.Unit CEP = Cep.DesSerializedUnit(vJson);
if (string.IsNullOrEmpty(CEP.estado))
{
MessageBox.Show("O número do CEP informado não foi localizado!","CEP ",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
LimpaDadosEndereco(false);
return;
}
Txt_Logradouro.Text = CEP.logradouro;
Txt_Bairro.Text = CEP.bairro;
Txt_Cidade.Text = CEP.localidade;
Cmb_Estados.SelectedIndex = -1;
for (int i = 0; i <= Cmb_Estados.Items.Count - 1; i++)
{
var item = Cmb_Estados.Items[i].ToString();
if (!item.Contains(CEP.estado)) continue;
Cmb_Estados.SelectedIndex = i;
}
}
private void LimpaDadosEndereco(bool cepInvalido)
{
if (cepInvalido)
MessageBox.Show("CEP inválido! Digite apenas os 8 números do CEP!","CEP INVÁLIDO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Txt_CEP.Text = string.Empty;
Txt_Logradouro.Text = string.Empty;
Txt_Bairro.Text = string.Empty;
Txt_Cidade.Text = string.Empty;
Cmb_Estados.SelectedIndex = -1;
Txt_CEP.Select();
}