private async void HacerBusqueda(Busqueda parametrosBusqueda) { Mensaje = "Realizando búsqueda"; Lanzar(nameof(Mensaje)); List <PokemonInfo> pokemonesTemp = new List <PokemonInfo>(); try { if (!String.IsNullOrEmpty(parametrosBusqueda.nombreBuscado)) { var result = await client.GetAsync($"pokemon/{parametrosBusqueda.nombreBuscado.ToLower()}"); if (result.StatusCode == System.Net.HttpStatusCode.OK) { var json = await result.Content.ReadAsStringAsync(); PokemonInfo p = JsonConvert.DeserializeObject <PokemonInfo>(json); pokemonesTemp.Add(p); Mensaje = "La espera está por terminar"; Lanzar(nameof(Mensaje)); } else { Pokemones = pokemonesTemp; } } //Busca los de la habilidad if (parametrosBusqueda.habilidadBuscada != "--Abilities--" && parametrosBusqueda.habilidadBuscada != null) { var resultHabilidad = await client.GetAsync($"ability/{parametrosBusqueda.habilidadBuscada}"); var jsonHabilidad = await resultHabilidad.Content.ReadAsStringAsync(); HabilidadCompletaInfo habilidadObtenida = JsonConvert.DeserializeObject <HabilidadCompletaInfo>(jsonHabilidad); Mensaje = "La espera está por terminar"; Lanzar(nameof(Mensaje)); foreach (var p in habilidadObtenida.pokemon) { var poke = await client.GetAsync($"pokemon/{p.pokemon.name}"); var jsonPoke = await poke.Content.ReadAsStringAsync(); PokemonInfo poke2 = JsonConvert.DeserializeObject <PokemonInfo>(jsonPoke); pokemonesTemp.Add(poke2); } } //Buscar por tipos if (parametrosBusqueda.tipoBuscado != "--Types--" && parametrosBusqueda.tipoBuscado != null) { var resultTipo = await client.GetAsync($"type/{parametrosBusqueda.tipoBuscado }"); var jsonTipo = await resultTipo.Content.ReadAsStringAsync(); TipoCompletoInfo tipoObtenido = JsonConvert.DeserializeObject <TipoCompletoInfo>(jsonTipo); Mensaje = "La espera está por terminar"; Lanzar(nameof(Mensaje)); foreach (var p in tipoObtenido.pokemon) { var poke = await client.GetAsync($"pokemon/{p.pokemon.name}"); var jsonPoke = await poke.Content.ReadAsStringAsync(); PokemonInfo poke2 = JsonConvert.DeserializeObject <PokemonInfo>(jsonPoke); pokemonesTemp.Add(poke2); } } } catch (Exception e) { Mensaje = e.ToString(); Lanzar(nameof(Mensaje)); } Pokemones = BuscadorHelper.FiltrarLista(pokemonesTemp, parametrosBusqueda.nombreBuscado, parametrosBusqueda.habilidadBuscada, parametrosBusqueda.tipoBuscado).ToList(); Mensaje = $"Se han encontrado {Pokemones.Count()} resultados que coinciden con su búsqueda"; Lanzar(); }
public void VerDetalle(string pokemonParametro) { ModalVisible = Modal.VerDetalle; PokemonParameter = Pokemones.First(x => x.name == pokemonParametro); Lanzar(); }