private PaginationModelView <BookModel> List(string search, int page = 0) { VolumesResource.ListRequest listquery = _booksService.Volumes.List(search); listquery.MaxResults = resultsPerPage; listquery.StartIndex = resultsPerPage * page; listquery.LangRestrict = CultureInfo.CurrentCulture.ToString().Substring(0, 2); try { var res = listquery.Execute(); return(new PaginationModelView <BookModel> { totalItems = (int)res.TotalItems, elementsPerPage = resultsPerPage, currentPage = page + 1, items = res.Items.Select(b => StandarizeBookModel(b)).ToList() }); } catch (Exception) { return(new PaginationModelView <BookModel> { totalItems = 0, elementsPerPage = resultsPerPage, currentPage = 0, items = new List <BookModel>() }); } }
public ActionResult Search(string searchTerm) { // Create the service. var service = new BooksService(new BaseClientService.Initializer() { //ApiKey = "IzaSyBv71CkLIRo_JmLo9UeZud8kRNFVJ1Sb0k" }); var request = new VolumesResource.ListRequest(service, searchTerm); request.MaxResults = 40; var searchResult = request.Execute(); var result = new SearchResultsViewModel(); result.SearchTerm = searchTerm; foreach (var resultItem in searchResult.Items) { if (!result.Books.Exists(x => x.Title == resultItem.VolumeInfo.Title)) { var bookViewModel = new BookViewModel { Title = resultItem.VolumeInfo.Title, ID = resultItem.Id }; var author = resultItem.VolumeInfo.Authors != null?resultItem.VolumeInfo.Authors.Aggregate((i, j) => i + ", " + j) : null; Google.Apis.Books.v1.Data.Volume.VolumeInfoData.IndustryIdentifiersData industryIdentifier = null; if (resultItem.VolumeInfo.IndustryIdentifiers != null && resultItem.VolumeInfo.IndustryIdentifiers.Any()) { industryIdentifier = resultItem.VolumeInfo.IndustryIdentifiers.FirstOrDefault(x => x.Type == "ISBN_13") ?? resultItem.VolumeInfo.IndustryIdentifiers.FirstOrDefault(x => x.Type == "ISBN_10"); } var imageLink = resultItem.VolumeInfo.ImageLinks != null ? resultItem.VolumeInfo.ImageLinks.SmallThumbnail : null; if (industryIdentifier != null && imageLink != null && author != null) { bookViewModel.Author = author; bookViewModel.ImageLink = imageLink; bookViewModel.ISBN = industryIdentifier.Identifier; result.Books.Add(bookViewModel); } } } return(View(result)); }
public ActionResult Search(string searchTerm) { // Create the service. var service = new BooksService(new BaseClientService.Initializer() { //ApiKey = "IzaSyBv71CkLIRo_JmLo9UeZud8kRNFVJ1Sb0k" }); var request = new VolumesResource.ListRequest(service, searchTerm); request.MaxResults = 40; var searchResult = request.Execute(); var result = new SearchResultsViewModel(); result.SearchTerm = searchTerm; foreach (var resultItem in searchResult.Items) { if (!result.Books.Exists(x => x.Title == resultItem.VolumeInfo.Title)) { var bookViewModel = new BookViewModel { Title = resultItem.VolumeInfo.Title, ID = resultItem.Id }; var author = resultItem.VolumeInfo.Authors != null ? resultItem.VolumeInfo.Authors.Aggregate((i, j) => i + ", " + j) : null; Google.Apis.Books.v1.Data.Volume.VolumeInfoData.IndustryIdentifiersData industryIdentifier = null; if (resultItem.VolumeInfo.IndustryIdentifiers != null && resultItem.VolumeInfo.IndustryIdentifiers.Any()) { industryIdentifier = resultItem.VolumeInfo.IndustryIdentifiers.FirstOrDefault(x => x.Type == "ISBN_13") ?? resultItem.VolumeInfo.IndustryIdentifiers.FirstOrDefault(x => x.Type == "ISBN_10"); } var imageLink = resultItem.VolumeInfo.ImageLinks != null ? resultItem.VolumeInfo.ImageLinks.SmallThumbnail : null; if (industryIdentifier != null && imageLink != null && author != null) { bookViewModel.Author = author; bookViewModel.ImageLink = imageLink; bookViewModel.ISBN = industryIdentifier.Identifier; result.Books.Add(bookViewModel); } } } return View(result); }
public GoogleBooksApiClientTests() { var fixture = new Fixture(); var clientService = fixture.Create <BooksService>(); _testGetRequest = new VolumesResource.GetRequest(clientService, "test"); _testListRequest = new VolumesResource.ListRequest(clientService, "test"); _volumesResource = new Mock <VolumesResource>(clientService); _volumesResource.Setup(x => x.Get(It.IsAny <string>())).Returns(_testGetRequest); _volumesResource.Setup(x => x.List("test")).Returns(_testListRequest); _apiClient = new GoogleBooksApiClient(_volumesResource.Object); }
public static List <Book> GetBooks(string apiKey, string searchQuery) { using var booksService = new BooksService(new BaseClientService.Initializer { ApiKey = apiKey, ApplicationName = "BookReview" }); var listRequest = new VolumesResource.ListRequest(booksService, searchQuery); listRequest.MaxResults = 10; listRequest.ShowPreorders = false; var listResponse = listRequest.Execute(); return(MapResponsesToBooksModel(listResponse.Items)); }
public async Task <Volumes> SearchBooks(String _query) { UserCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, new[] { BooksService.Scope.Books }, Environment.UserName, CancellationToken.None, new FileDataStore("Books.ListMyLibrary")); } var service = new BooksService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Books API Sample", }); VolumesResource.ListRequest request = service.Volumes.List(); request.MaxResults = 40; request.Q = _query; return(await request.ExecuteAsync()); }
public ListRequestStub(VolumesResource.ListRequest listRequest) { _listRequest = listRequest; }