Example #1
0
        /// <summary>
        ///     Retrieve a list of volumes containing a search term
        /// </summary>
        /// <param name="searchTerm">Term for which to search the Volume set</param>
        /// <returns>List of Volumes containing the search term in their Name field</returns>
        public List <CVVolume> GetVolumesByName(string searchTerm)
        {
            List <CVVolume> result = new List <CVVolume>();

            int offset = 0;
            int resultsThisIteration = 0;

            do
            {
                string query =
                    $"{_comicVineAddress}volumes/?api_key={_apiKey}&format=json&filter=name:{HttpUtility.UrlEncode(searchTerm)}&offset={offset}";

                VolumeSearchQuery searchQueryResult = Connection.ConnectAndRequestVolumeSearch(query);

                if (searchQueryResult.StatusCode != 1)
                {
                    continue;
                }

                result.AddRange(searchQueryResult.Results);

                resultsThisIteration = searchQueryResult.NumberOfPageResults;
                offset += searchQueryResult.NumberOfPageResults;
            } while (resultsThisIteration == Integers.RESULTS_PER_PAGE);

            return(result);
        }
        /// <summary>
        ///     Connect to the ComicVine API and retrieve a list of Volume object
        /// </summary>
        /// <param name="url">URL to the Volume search within the API</param>
        /// <returns>VolumeSearchQuery object populated with Volumes matching a given query</returns>
        public static VolumeSearchQuery ConnectAndRequestVolumeSearch(string url)
        {
            VolumeSearchQuery result = new VolumeSearchQuery();

            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

            using WebResponse webResponse   = httpWebRequest.GetResponse();
            using StreamReader streamReader = new StreamReader(webResponse.GetResponseStream() !);
            return(JsonConvert.DeserializeObject <VolumeSearchQuery>(Sanitize(streamReader.ReadToEnd())));
        }