public async Task <ChuckNorrisJoke> GetRandomJokeFromCategory(ApiJokeCategories category)
        {
            HttpResponseMessage result = await _client.GetAsync($"?category={category.ToApiCategoryParameter()}");

            result.EnsureSuccessStatusCode();

            ChuckNorrisJoke joke = await result.Content.ReadFromJsonAsync <ChuckNorrisJoke>();

            return(joke);
        }
Exemple #2
0
        public async Task <ChuckNorrisJoke> Handle(string category)
        {
            ChuckNorrisJoke joke = null;

            try
            {
                joke = await _chuckRepository.GetRandomJokeFromCategory(category);
            }
            catch (Exception e)
            {
                _logger.LogCritical(e, e.Message);
            }

            return(joke);
        }
Exemple #3
0
    private IEnumerator SearchJoke(string search, bool searchJokes = false)
    {
        jokePlaceholderTMP.text = "Loading. . .";

        string finalURL = _URL + search;

        UnityWebRequest www = new UnityWebRequest(finalURL)
        {
            downloadHandler = new DownloadHandlerBuffer()
        };

        yield return(www.SendWebRequest());

        if (www.isNetworkError || www.isHttpError)
        {
            jokePlaceholderTMP.text = "Error";
            Debug.Log("Error has occur: " + www.error);
            yield break;
        }

        if (searchJokes == false)
        {
            chucknorrisJoke         = JsonUtility.FromJson <ChuckNorrisJoke>(www.downloadHandler.text);
            categoryTMP.text        = chucknorrisJoke.categories.Count > 0 ? chucknorrisJoke.categories[0] : "";
            jokePlaceholderTMP.text = chucknorrisJoke.value;
            Debug.Log(chucknorrisJoke.value);
        }
        else
        {
            chucknorrisJokes = JsonUtility.FromJson <SearchJoke>(www.downloadHandler.text);
            if (chucknorrisJokes.total > 0)
            {
                int             rand = Random.Range(0, chucknorrisJokes.result.Count);
                ChuckNorrisJoke joke = chucknorrisJokes.result[rand];
                jokePlaceholderTMP.text = joke.value;
                categoryTMP.text        = joke.categories.Count > 0 ? joke.categories[0] : "";
            }
        }
    }
Exemple #4
0
        public async Task <string> GetAJoke()
        {
            ChuckNorrisJoke chuckNorrisJoke = await _chuckNorrisClient.GetARandomJoke();

            return(chuckNorrisJoke?.Joke);
        }