/// <summary> /// Searches for jokes that contain the specified term. /// </summary> /// <param name="term">Keywork to find in jokes.</param> /// <param name="page">Results page when more than one page is available.</param> /// <returns></returns> public async Task <JokeSearchResultsModel> SearchJokes(string term, int page = 1) { try { string uri = $"{_baseAddress}search?term={term}&page={page}&limit=30"; if (Uri.IsWellFormedUriString(uri, UriKind.Absolute)) { _client.DefaultRequestHeaders.Accept.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Task <Stream> stringTask = _client.GetStreamAsync(uri); JokeSearchResultsModel results = await JsonSerializer.DeserializeAsync <JokeSearchResultsModel>(await stringTask); return(results); } return(null); } catch { return(null); } }
/// <summary> /// Returns the result of a joke search as a json object. /// </summary> /// <param name="searchTerm">Keywork to search in jokes.</param> /// <param name="page">Page to return if more than one page available.</param> /// <returns></returns> public async Task <IActionResult> SearchJokes(string searchTerm, int page = 1) { JokeApplicationServices jokeApi = new JokeApplicationServices(); JokeSearchResultsModel searchResults = await jokeApi.SearchJokes(searchTerm, page); if (searchResults != null) { return(Json(searchResults)); } return(StatusCode(500)); }