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); }