private string InsertConveniosDB(List <string> arraySituacao) { string urlTodosConvenios = ""; try { using (var context = new ApplicationDBContext()) { foreach (var situacao in arraySituacao) { // convenios de Sao Luis - MA urlTodosConvenios = "http://api.convenios.gov.br/siconv/v1/consulta/convenios.json?id_proponente=29138369000147&id_situacao=" + situacao; //29138369000147 -> teresopolis // "POINT(-42.9658788 -22.4133074)" //6307102000130 -> prefeitura slz // "POINT(-44.2691611 -2.6258591)" var ReadData = new System.Net.WebClient().DownloadString(urlTodosConvenios); ListaConvenios listaConvenios = JsonConvert.DeserializeObject <ListaConvenios>(ReadData); foreach (var convenio in listaConvenios.convenios) { string urlConvenioId = convenio.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(urlConvenioId); Convenios convenioJson = JsonConvert.DeserializeObject <Convenios>(ReadData); string urlConcedenteId = convenio.orgao_concedente.orgao.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(urlConcedenteId); Concedente concedenteJson = JsonConvert.DeserializeObject <Concedente>(ReadData); var tempSitId = int.Parse(situacao); context.Convenio.Add(new Convenio { DataInicio = convenio.data_inicio_vigencia, DataFim = convenio.data_fim_vigencia, ValorTotal = convenio.valor_global, DescricaoObjeto = convenioJson.convenios.FirstOrDefault().objeto, SincovId = convenio.id, Coordenadas = DbGeography.FromText("POINT(-42.9658788 -22.4133074)"), // mudar SituacaoId = context.Situacao.Where(x => x.SincovId == tempSitId).FirstOrDefault().Id, ProponenteId = 3, // mudar ParecerGovernoId = 1, ConcedenteSincovId = convenio.orgao_concedente.orgao.id, ConcedenteNome = concedenteJson.orgaos.FirstOrDefault().nome }); } } context.SaveChanges(); return("Convenios adicionados com sucesso"); } } catch (Exception ex) { return("Erro: " + ex.Message); } }
private string InsertConveniosDB(List <string> arraySituacao, string id) { string urlTodosConvenios = ""; try { using (var context = new ApplicationDBContext()) { foreach (var situacao in arraySituacao) { urlTodosConvenios = "http://api.convenios.gov.br/siconv/v1/consulta/convenios.json?id_proponente=" + id + "&id_situacao=" + situacao; //29138369000147 -> teresopolis // "POINT(-42.9658788 -22.4133074)" //6307102000130 -> prefeitura slz // "POINT(-44.2691611 -2.6258591)" var ReadData = new System.Net.WebClient().DownloadString(urlTodosConvenios); ListaConvenios listaConvenios = JsonConvert.DeserializeObject <ListaConvenios>(ReadData); List <string> listProponentes = new List <string>(); foreach (var convenio in listaConvenios.convenios) { string urlConvenioId = convenio.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(urlConvenioId); Convenios convenioJson = JsonConvert.DeserializeObject <Convenios>(ReadData); string urlConcedenteId = convenio.orgao_concedente.orgao.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(urlConcedenteId); Concedente concedenteJson = JsonConvert.DeserializeObject <Concedente>(ReadData); string proponenteId = convenio.proponente.Proponente.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(proponenteId); Proponentes proponenteJson = JsonConvert.DeserializeObject <Proponentes>(ReadData); string municipioId = proponenteJson.proponentes[0].municipio.Municipio.href + ".json"; ReadData = new System.Net.WebClient().DownloadString(municipioId); Municipio municipioJson = JsonConvert.DeserializeObject <Municipio>(ReadData); var propId = proponenteJson.proponentes[0].id; var prop = context.Proponente.FirstOrDefault(x => x.SincovId == propId); bool contaisProp = true; Proponente temp = null; if (prop == null && !listProponentes.Contains(propId)) { temp = new Proponente { CEP = proponenteJson.proponentes[0].cep, Cidade = municipioJson.municipios[0].nome, Endereco = proponenteJson.proponentes[0].endereco, Estado = municipioJson.municipios[0].uf.sigla, Nome = proponenteJson.proponentes[0].nome, ResponsavelNome = proponenteJson.proponentes[0].nome_responsavel, ResponsavelSincovId = proponenteJson.proponentes[0].pessoa_responsavel.PessoaResponsavel.id, ResponsavelTelefone = proponenteJson.proponentes[0].telefone, SincovId = propId }; context.Proponente.Add(temp); context.SaveChanges(); listProponentes.Add(propId); contaisProp = false; } var tempSitId = int.Parse(situacao); context.Convenio.Add(new Convenio { DataInicio = convenio.data_inicio_vigencia, DataFim = convenio.data_fim_vigencia, ValorTotal = convenio.valor_global, DescricaoObjeto = convenioJson.convenios.FirstOrDefault().objeto, SincovId = convenio.id, Coordenadas = DbGeography.FromText("POINT(-42.9658788 -22.4133074)"), // mudar SituacaoId = context.Situacao.Where(x => x.SincovId == tempSitId).FirstOrDefault().Id, ProponenteId = (!contaisProp ? temp.Id : prop.Id), // caso nao exista no BD, add o criado anteriormente. Caso exista, add o consultado do banco ParecerGovernoId = 1, ConcedenteSincovId = convenio.orgao_concedente.orgao.id, ConcedenteNome = concedenteJson.orgaos.FirstOrDefault().nome }); } } context.SaveChanges(); return("Convenios adicionados com sucesso"); } } catch (Exception ex) { return("Erro: " + ex.Message); } }