Ejemplo n.º 1
0
        public List <Personagem> ObterDadosPersonagens(string nome)
        {
            if (string.IsNullOrEmpty(nome))
            {
                nome = "%";
            }

            _client.DefaultRequestHeaders.Accept.Clear();
            _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            string ts        = DateTime.Now.Ticks.ToString();
            string publicKey = _configuration.GetSection("MarvelComicsAPI:PublicKey").Value;
            string hash      = GerarHash(ts, publicKey, _configuration.GetSection("MarvelComicsAPI:PrivateKey").Value);

            string url = _configuration.GetSection("MarvelComicsAPI:BaseURL").Value + $"characters?ts={ts}&apikey={publicKey}&hash={hash}&" + $"nameStartsWith={nome}";

            HttpResponseMessage response = _client.GetAsync(url).Result;

            response.EnsureSuccessStatusCode();
            string conteudo =
                response.Content.ReadAsStringAsync().Result;

            dynamic resultado = JsonConvert.DeserializeObject(conteudo);

            List <Personagem> listPersonagem = new List <Personagem>();

            foreach (var item in resultado.data.results)
            {
                Personagem personagem = new Personagem();
                personagem.Nome      = item.name;
                personagem.Descricao = item.description;
                personagem.UrlImagem = item.thumbnail.path + "." + item.thumbnail.extension;
                personagem.UrlWiki   = item.urls[1].url;
                personagem.ID        = item.id;

                personagem.Historias = new List <string>();
                foreach (var historia in item.stories.items)
                {
                    personagem.Historias.Add(historia.name.ToString());
                }

                listPersonagem.Add(personagem);
            }

            return(listPersonagem);
        }
        public Personagem ObterDadosPersonagem()
        {
            string heroi = HEROIS[new Random().Next(0, 9)];

            _client.DefaultRequestHeaders.Accept.Clear();
            _client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            string ts        = DateTime.Now.Ticks.ToString();
            string publicKey =
                _configuration.GetSection("MarvelComicsAPI:PublicKey").Value;
            string hash = GerarHash(ts, publicKey,
                                    _configuration.GetSection("MarvelComicsAPI:PrivateKey").Value);

            string url = _configuration.GetSection("MarvelComicsAPI:BaseURL").Value +
                         $"characters?ts={ts}&apikey={publicKey}&hash={hash}&" +
                         $"name={Uri.EscapeUriString(heroi)}";
            HttpResponseMessage response = _client.GetAsync(
                url).Result;

            response.EnsureSuccessStatusCode();
            string conteudo =
                response.Content.ReadAsStringAsync().Result;

            dynamic resultado = JsonConvert.DeserializeObject(conteudo);

            Personagem personagem = new Personagem();

            personagem.Nome      = resultado.data.results[0].name;
            personagem.Descricao = resultado.data.results[0].description;
            personagem.UrlImagem = resultado.data.results[0].thumbnail.path + "." +
                                   resultado.data.results[0].thumbnail.extension;
            personagem.UrlWiki = resultado.data.results[0].urls[1].url;

            return(personagem);
        }