0 votos
49 visitas
por (1,8K pontos)
reclassificado por | 49 visitas

1 Resposta

0 votos
Veja o exemplo abaixo de uma classe para conectar com o portal de transparência.
Você pode criar a classe em Regras / Classes.
 
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Net.Http;
using System.Xml.Linq;

public  class CamaraAPI
{

    public static string PesquisaDeputadoProvider(object nome, object uf, object partido) {
        string url = "https://dadosabertos.camara.leg.br/api/v2/deputados?ordem=ASC&ordenarPor=nome&itens=531";
        if (nome is string && !string.IsNullOrEmpty(nome.ToString()))
            url += "&nome=" + nome;
        if (uf is string && !string.IsNullOrEmpty(uf.ToString()))
            url += "&siglaUf=" + uf;
        if (partido is string && !string.IsNullOrEmpty(partido.ToString()))
            url += "&siglaPartido=" + partido;
        using (HttpClient client = new HttpClient())
        {
            JObject obj =JsonConvert.DeserializeObject(client.GetStringAsync(url).Result) as JObject;
            XElement items = new XElement("Items");
            foreach (JObject deputado in obj["dados"])
            {
                XElement item = new XElement("Item");
                item.Add(new XElement("HIDDEN_ID", new XAttribute("ColumnName", "HIDDEN_ID"), deputado["id"].ToString()));
                item.Add(new XElement("Nome", new XAttribute("ColumnName", "Nome"), deputado["nome"].ToString()));
                item.Add(new XElement("UF", new XAttribute("ColumnName", "UF"), deputado["siglaUf"].ToString()));
                item.Add(new XElement("Partido", new XAttribute("ColumnName", "Partido"), deputado["siglaPartido"].ToString()));
                item.Add(new XElement("HIDDEN_FOTO", new XAttribute("ColumnName", "HIDDEN_FOTO"), deputado["urlFoto"].ToString()));
                items.Add(item);
            }
            return items.ToString();
        }
    }
    
    public static string PesquisaDespesaProvider(object id, object ano, object mes)
    {
        string url = "https://dadosabertos.camara.leg.br/api/v2/deputados/"+ id.ToString()+"/despesas?ordem=ASC&ordenarPor=ano&itens=1000";
        if (ano is string && !string.IsNullOrEmpty(ano.ToString()))
            url += "&ano=" + ano;
        if (mes is string && !string.IsNullOrEmpty(mes.ToString()))
            url += "&mes=" + mes;
        using (HttpClient client = new HttpClient())
        {
            JObject obj = JsonConvert.DeserializeObject(client.GetStringAsync(url).Result) as JObject;
            XElement items = new XElement("Items");
            foreach (JObject despesa in obj["dados"])
            {
                XElement item = new XElement("Item");
                item.Add(new XElement("Documento", new XAttribute("ColumnName", "Documento"), despesa["codDocumento"].ToString()));
                item.Add(new XElement("Valor", new XAttribute("ColumnName", "Valor"), Convert.ToDecimal(despesa["valorDocumento"].ToString()).ToString("C")));
                item.Add(new XElement("Fonecedor", new XAttribute("ColumnName", "Fornecedor"), despesa["nomeFornecedor"].ToString()));
                item.Add(new XElement("Tipo", new XAttribute("ColumnName", "Tipo"), despesa["tipoDespesa"].ToString()));
                items.Add(item);
            }
            return items.ToString();
        }
    }
       
    public static List<Dictionary<string,object>> PesquisaDeputado(object id)
    {
        string url = "https://dadosabertos.camara.leg.br/api/v2/deputados/" + id.ToString();
        using (HttpClient client = new HttpClient())
        {
            JObject obj = JsonConvert.DeserializeObject(client.GetStringAsync(url).Result) as JObject;
            List<Dictionary<string, object>> items = new List<Dictionary<string, object>>();
            JToken deputado = obj["dados"];
            Dictionary<string, object> item = new Dictionary<string, object>();
            item.Add("id", deputado["id"].ToString());
            item.Add("nome", deputado["ultimoStatus"]["nome"].ToString());
            item.Add("siglaUf", deputado["ultimoStatus"]["siglaUf"].ToString());
            item.Add("siglaPartido", deputado["ultimoStatus"]["siglaPartido"].ToString());
            item.Add("urlFoto", deputado["ultimoStatus"]["urlFoto"].ToString());
            item.Add("cpf", deputado["cpf"].ToString());
            item.Add("escolaridade", deputado["escolaridade"].ToString());
            item.Add("municipioNascimento", deputado["municipioNascimento"].ToString());
            item.Add("dataNascimento", deputado["dataNascimento"].ToString());
            item.Add("ufNascimento", deputado["ufNascimento"].ToString());
            item.Add("andar", deputado["ultimoStatus"]["gabinete"]["andar"].ToString());
            item.Add("email", deputado["ultimoStatus"]["gabinete"]["email"].ToString());
            item.Add("predio", deputado["ultimoStatus"]["gabinete"]["predio"].ToString());
            item.Add("sala", deputado["ultimoStatus"]["gabinete"]["sala"].ToString());
            item.Add("telefone", deputado["ultimoStatus"]["gabinete"]["telefone"].ToString());
            items.Add(item);
            return items;
        }
    }
}

Os métodos podem ser utilizados com o bloco Script / executar na classe [nome da classe] a função [nome do método] como segue abaixo:

por (1,8K pontos)
Seja bem vindo ao fórum Madrix, onde você pode fazer perguntas e receber respostas de outros membros da comunidade.
42 perguntas
42 respostas
1 comentário
16 usuários