public async Task <Materia> RecuperarMateriaPeloCodigo(Processo campos) { string urlProcesso = new UrlProcessoBuilder(campos).Build(); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); var response = await client.GetAsync(urlProcesso); if (response.IsSuccessStatusCode) { var conteudo = response.Content.ReadAsStreamAsync().Result; XmlSerializer serializer = new XmlSerializer(typeof(PesquisaBasicaMateria)); PesquisaBasicaMateria pesquisa = (PesquisaBasicaMateria)serializer.Deserialize(conteudo); MovimentacaoMateria movimentacao = await TramitacoesDaMateria(pesquisa.Materia.Identificacao.Codigo); pesquisa.Materia.Tramitacoes = movimentacao.Materia.Tramitacoes; pesquisa.Materia.Tramitacoes.OrderBy(t => t.Identificacao.Data); pesquisa.Materia.SituacaoAtual = movimentacao.Materia.SituacaoAtual; return(pesquisa.Materia); } throw new SystemException("Não foi possível consultar o serviço de processos."); } }
public async Task <MovimentacaoMateria> TramitacoesDaMateria(int codigoMateria) { string urlTramitacoes = "http://legis.senado.leg.br/dadosabertos/materia/movimentacoes/" + codigoMateria; Debug.WriteLine($"URL de tramitações: {urlTramitacoes}"); using (var client = new HttpClient()) { var movimentacaoResponse = await client.GetAsync(urlTramitacoes); if (movimentacaoResponse.IsSuccessStatusCode) { var movimentacaoConteudo = movimentacaoResponse.Content.ReadAsStreamAsync().Result; XmlSerializer movimentacaoSerializer = new XmlSerializer(typeof(MovimentacaoMateria)); MovimentacaoMateria movimentacao = (MovimentacaoMateria)movimentacaoSerializer.Deserialize(movimentacaoConteudo); Debug.WriteLine($"Total de tramitações: {movimentacao.Materia.Tramitacoes.Length}"); return(movimentacao); } throw new SystemException("Não foi possível consultar o serviço de tramitações."); } }