public async Task <GifResult> GifFetch(string searchTerm) { if (string.IsNullOrEmpty(searchTerm)) { throw new FormatException("query term is required"); } SearchParameters searchParameters = new SearchParameters(); searchParameters.ApiKey = _apiKey; searchParameters.Query = searchTerm; var searchString = WebTools.ToKeyValueURL(searchParameters); var result = await _webTools.GetData(new Uri($"{_giphyUrl}{searchString}")); if (!result.IsSuccess) { throw new WebException($"Failed to get GIFs: {result.Result}"); } GifResult gifResult = JsonConvert.DeserializeObject <GifResult>(result.Result); return(gifResult); }