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();
 }