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!"; */ }
/// <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)); }