示例#1
0
        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());
        }
示例#2
0
        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());
        }