Пример #1
0
 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>()
         });
     }
 }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #6
0
        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;
 }