Example #1
0
        /// <summary>
        ///     Retrieve details regarding a Volume
        /// </summary>
        /// <param name="volumeId">ID of the Volume to retrieve</param>
        /// <returns>Volume object populated with details of Volume indicated by the passed ID</returns>
        public CVVolume GetVolumeDetails(int volumeId)
        {
            string query = $"{_comicVineAddress}volume/4050-{volumeId}/?api_key={_apiKey}&format=json";

            VolumeQuery volumeQuery = Connection.ConnectAndRequestVolumeDetails(query);

            return(volumeQuery.CvVolume);
        }
Example #2
0
        /// <summary>
        ///     Retrieve a list of Issues contained within a Volume
        /// </summary>
        /// <param name="volumeId">ID of the Volume for which the list of Issues is to be returned</param>
        /// <returns>List containing Issue objects for the given Volume ID</returns>
        public List <Issue> GetIssuesByVolume(int volumeId)
        {
            string query = $"{_comicVineAddress}volume/4050-{volumeId}/?api_key={_apiKey}&format=json";

            VolumeQuery volumeQuery = Connection.ConnectAndRequestVolumeDetails(query);

            return(volumeQuery.CvVolume.Issues as List <Issue>);
        }
        /// <summary>
        ///     Connect to the ComicVine API and retrieve the details for a Volume
        /// </summary>
        /// <param name="url">URL to the Volume object within the API</param>
        /// <returns>VolumeQuery object populated with details of Volume</returns>
        public static VolumeQuery ConnectAndRequestVolumeDetails(string url)
        {
            VolumeQuery result = new VolumeQuery();

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

            using WebResponse webResponse   = httpWebRequest.GetResponse();
            using StreamReader streamReader = new StreamReader(webResponse.GetResponseStream() !);
            return(JsonConvert.DeserializeObject <VolumeQuery>(Sanitize(streamReader.ReadToEnd())));
        }
Example #4
0
        public IActionResult GetDocuments(VolumeQuery volumeQuery, [FromQuery] int?start = 0, [FromQuery] int?count = 50)
        {
            if (!TryGetSession(User, out Session session))
            {
                return(Unauthorized());
            }

            if (volumeQuery == null)
            {
                return(BadRequest(Resources.ErrorEmptyRequest));
            }

            VolumeState volumeState = new VolumeState(
                volumeQuery.VolumeName,
                volumeQuery.FilterQuery,
                volumeQuery.SortOrder,
                volumeQuery.Search
                );

            DocumentsResult docsResult = session.GetDocuments(volumeState, start ?? 0, count ?? 50);

            return(Ok(docsResult));
        }