public async Task <ActionResult <string> > GetAsync(int id)
        {
            // TODO: Test code for quickly verifying changes.

            ComicVineService comicVineService = new ComicVineService();
            //var testVolume = await comicVineService.GetVolume("4050-796");


            VolumeFilter filter = new VolumeFilter()
            {
                Name = "Teen Titans"
            };
            VolumeSort sort = new VolumeSort();

            ComicSearch comicSearch = new ComicSearch()
            {
                VolumeFilterCriteria = filter, VolumeSortCriteria = sort
            };



            var testVolumes = await comicVineService.SearchComics(comicSearch);

            var testOneIssue = await comicVineService.GetIssue(30000);

            var testOneMore = await comicVineService.GetIssue(0);

            return("Testing");

            //var moreTest = testVolumes.Where(x => x.Deck != null);

            //return testVolumes[0].Deck == null ? testVolumes[0].Description : testVolumes[0].Deck.ToString();

            /*
             * DALConfig config = new DALConfig();
             * var collectionDb = config.GetMongoDatabase();
             * collectionDb.DropCollection("User");
             *
             * UserRepository userRepository = new UserRepository();
             * ComicCollectionRepository comicCollectionRepository = new ComicCollectionRepository();
             * CollectedVolumeRepository collectedVolumeRepository = new CollectedVolumeRepository();
             *
             * userRepository.Save(new ComicAPI.Models.User() { Name = "Shannon" });
             * userRepository.Save(new ComicAPI.Models.User() { Name = "Tony Stark" });
             *
             * var test = userRepository.GetAll();
             *
             * return "Testing!";
             */
        }
Example #2
0
        /// <summary>
        /// Query the ComicVine API for comic issues matching the given search settings.
        /// </summary>
        /// <param name="searchSettings">Settings by which to search, such as filter or sort criteria</param>
        /// <returns>An IssueResponse object matching the provided settings</returns>
        public async Task <IssuesResponse> SearchComics(ComicSearch searchSettings)
        {
            // TODO: Add options to pass in limiter/offset for paging if time allows.

            List <Volume> volumeList = null;

            if (searchSettings.VolumeFilterCriteria != null)
            {
                // Volume criteria specified, so get the list of matching volumes first.
                var volumesResponse = await GetVolumes(searchSettings.VolumeFilterCriteria, searchSettings.VolumeSortCriteria);

                volumeList = volumesResponse.Results.ToList();
            }

            // Add volume Ids as a delimited string to the Issues filter, to get all issues matching the returned volumes.
            if (volumeList != null)
            {
                string delimitedVolumes = "";
                for (int i = 0; i < volumeList.Count; i++)
                {
                    delimitedVolumes += volumeList[i].Id;
                    if (i < volumeList.Count - 1)
                    {
                        delimitedVolumes += "|";    // Dev Note: Volume Ids can be delimited by a pipe when running the Issues search.
                    }
                }

                if (searchSettings.IssueFilterCriteria == null)
                {
                    searchSettings.IssueFilterCriteria = new IssueFilter(); // If the filter wasn't specified, add one now.
                }

                searchSettings.IssueFilterCriteria.Volume = delimitedVolumes;
            }

            // Return the issues matching all of the filter/sort criteria.
            return(await GetIssues(searchSettings.IssueFilterCriteria, searchSettings.IssueSortCriteria));
        }