Exemple #1
0
        public async Task <Paging <BookApiResult> > FindBook(string term, int page)
        {
            List <BookApiResult> results = new List <BookApiResult>();
            var index = (page - 1) * 10;

            try
            {
                var response = await bookApi.GetAsync($"volumes?q={term}&startIndex={index}&key={key}");

                response.EnsureSuccessStatusCode();
                var bookInfo = await response.Content.ReadAsAsync <BookSearchResults>();

                foreach (var book in bookInfo.Items)
                {
                    var newBook = _mapper.Map <BookApiResult>(book.VolumeInfo);
                    if (newBook.ISBN10 != null)
                    {
                        results.Add(newBook);
                    }
                }
                return(Paging <BookApiResult> .ApplyPaging(bookInfo.TotalItems, results, page));
            }
            catch
            {
                return(Paging <BookApiResult> .ApplyPaging(0, results, page));
            }
        }
        public void ApplyPaging_0ItemsAndDefaultPageSizeOf10AndCurrentPageOf1_ShouldHave0TotalItemsAndBothHavePrevAndHaveNextFalseAndTotalPagesOf0()
        {
            var page = Paging <int> .ApplyPaging(0, new List <int>(), 1);

            Assert.Equal(0, page.TotalRecords);
            Assert.False(page.HasPrev);
            Assert.False(page.HasNext);
            Assert.Equal(0, page.TotalPages);
        }
        public void ApplyPaging_20ItemsAndDefaultPageSizeOf10AndCurrentPageOf2_ShouldHave20TotalRecordsAndHasPrevTrueHasNextFalseAndTotalPagesOf2()
        {
            var list = Enumerable.Repeat(1, 20).ToList();
            var page = Paging <int> .ApplyPaging(list.Count(), list, 2);

            Assert.Equal(20, page.TotalRecords);
            Assert.True(page.HasPrev);
            Assert.False(page.HasNext);
            Assert.Equal(2, page.TotalPages);
        }