public async Task <IReadOnlyList <Page> > GetPaginatedResultsAsync(string query) { if (this.IsDisabled()) { return(null); } if (string.IsNullOrWhiteSpace(query)) { throw new ArgumentException("Query missing!", nameof(query)); } string response = await _http.GetStringAsync($"{_url}?apikey={this.key}&s={query}").ConfigureAwait(false); OMDbResponse data = JsonConvert.DeserializeObject <OMDbResponse>(response); IReadOnlyList <MovieInfo> results = data.Success ? data.Results?.AsReadOnly() : null; if (results is null || !results.Any()) { return(null); } return(results .Select(info => info.ToDiscordPage()) .ToList() .AsReadOnly()); }
public async Task <IReadOnlyList <MovieInfo>?> SearchAsync(string query) { if (this.IsDisabled) { return(null); } string url = $"{Endpoint}?apikey={this.key}&s={WebUtility.UrlEncode(query)}"; string response = await _http.GetStringAsync(url).ConfigureAwait(false); OMDbResponse data = JsonConvert.DeserializeObject <OMDbResponse>(response); IReadOnlyList <MovieInfo>?results = data.Success ? data.Results?.AsReadOnly() : null; if (results is null || !results.Any()) { return(null); } return(results .ToList() .AsReadOnly()); }