public IActionResult GetBooksPaging([FromQuery] BookParameters bookParameters) { try { var books = _repository.GetBooks(bookParameters); var metadata = new { books.TotalCount, books.PageSize, books.CurrentPage, books.TotalPages, books.HasNext, books.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); _logger.LogInformation($"Returned {books.TotalCount} books from database."); return(Ok(books)); } catch (Exception ex) { _logger.LogError($"Something went wrong inside GetList action: {ex.Message}"); return(StatusCode(500, "Internal server error")); } }
public async Task <ActionResult <IEnumerable <BookResource> > > GetAll([FromQuery] BookParameters parameters) { var books = await _bookRepository.GetAllAsync(parameters); var resources = MyMapper.Map <IEnumerable <BookResource> >(books); return(Ok(resources)); }
public PagedList <Book> GetBooks(BookParameters bookParameters) { return(PagedList <Book> .ToPagedList(Entities .AsQueryable() .Include(b => b.Author) .Include(b => b.Category) .OrderBy(b => b.Title), bookParameters.PageNumber, bookParameters.PageSize)); }
public async ValueTask <PagedList <BookDto> > GetBooksAsync(BookParameters bookParameters) { var books = await _repository.Book.GetBooksAsync(bookParameters); var listBookResponse = _mapper.Map <List <BookDto> >(books); var bookList = PagedList <BookDto> .ToPagedList(listBookResponse.AsQueryable(), bookParameters.PageNumber, bookParameters.PageSize); return(bookList); }
public async Task <IEnumerable <Book> > GetAllAsync(BookParameters parameters) { var query = _linContext.Books .AsQueryable(); if (!string.IsNullOrEmpty(parameters.Title)) { query = query.Where(b => b.Title.Contains(parameters.Title)); } var books = await query.ToListAsync(); return(books); }
public async ValueTask <IActionResult> GetBooksAsync([FromQuery] BookParameters bookParameters) { var books = await _service.GetBooksAsync(bookParameters); var booksResult = new { books.TotalCount, books.PageSize, books.CurrentPage, books.TotalPages, books }; return(Ok(booksResult)); }
public async Task GetBooksAsync_ShouldReturnPagedListBook() { //Arrange var parameters = new BookParameters() { PageNumber = 0, PageSize = 10 }; var pagedBooksMock = PagedList <Book> .ToPagedList(_bookList.AsQueryable(), 0, 10); repoWrapperMock.Setup(p => p.Book.GetBooksAsync(parameters)) .ReturnsAsync(pagedBooksMock); //Act var pagedBookList = await bookService.GetBooksAsync(parameters); //Assert Assert.Equal(pagedBooksMock.TotalCount, pagedBookList.TotalCount); Assert.Equal(pagedBooksMock.TotalPages, pagedBookList.TotalPages); Assert.Equal(pagedBooksMock.CurrentPage, pagedBookList.CurrentPage); Assert.Equal(pagedBooksMock.PageSize, pagedBookList.PageSize); Assert.Equal(pagedBooksMock.Count, pagedBookList.Count); }
/// <summary> /// Create a new SEWII Six file /// </summary> /// <param name="data"></param> /// <param name="publisher"></param> /// <param name="files"></param> /// <param name="transactionNumber"></param> /// <returns></returns> public string CreateSEWIISix(BookParameters data, SEWII.Book.Publisher publisher, List <NonSewFilesData> files, string transactionNumber) { try { var six = new SEWII_Xml.SIX(); var publisherXml = new SEWII_Xml.Publisher(); var product = new SEWII_Xml.Product(); var book = new SEWII_Xml.Book(); var bookId = new SEWII_Xml.BookId(); six.TransactionNumber = transactionNumber; six.Publisher = publisherXml; six.Product = product; publisherXml.Number = publisher.publisher_id; publisherXml.Name = publisher.publisher_name; publisherXml.Acronym = publisher.publisher_acronym; product.type = "BOOK"; product.Book = book; product.SDEComplaint = "true"; book.Title = data.title; book.SubTitle = data.subtitle; book.Id = bookId; book.Edition = data.edition; book.CopyrightYear = data.copyRightYear; book.TotalPages = data.totalPages; book.Description = data.desc; bookId.Type = "ISBN"; bookId.Value = data.isbn; var authorList = data.authors.Split(',').Where(x => x.Trim() != string.Empty).ToArray(); book.Autors = authorList; var text = files.Where(x => x.TypeFilePath.ToLower().Equals("text")).ToList(); if (text.Any()) { int index = text.Count; var array = new SEWII_Xml.InnerWorkItem[index]; for (int i = 0; i < index; i++) { var option = new FileInfo(text[i].FilePath); var item = new SEWII_Xml.InnerWorkItem(); item.Sequence = ((i) + 1).ToString(); item.Type = option.Extension.Replace(".", "").ToUpper(); item.FileName = option.Name; item.PageFirst = string.Empty; item.PageLast = string.Empty; item.NumberOfPages = data.totalPages; item.NumberOfColorPages = "0"; array[i] = item; } book.InnerWork = array; } var cover = files.Where(x => x.TypeFilePath.ToLower().Equals("cover")).ToList(); if (cover.Any()) { int index = cover.Count; var array = new SEWII_Xml.CoverItem[index]; for (int i = 0; i < index; i++) { var option = new FileInfo(cover[i].FilePath); var item = new SEWII_Xml.CoverItem(); item.Sequence = ((i) + 1).ToString(); item.FileName = option.Name; item.NumberOfPages = string.Empty; item.InnerNumberOfPages = "0"; item.OuterNumberOfPages = "0"; item.NumberOfColorPages = "0"; array[i] = item; } book.Cover = array; } var dustJacket = files.Where(x => x.TypeFilePath.ToLower().Equals("dust_jacket")).ToList(); if (dustJacket.Any()) { int index = dustJacket.Count; var array = new SEWII_Xml.DustJacketItem[index]; for (int i = 0; i < index; i++) { var option = new FileInfo(dustJacket[i].FilePath); var item = new SEWII_Xml.DustJacketItem(); item.Sequence = ((i) + 1).ToString(); item.FileName = option.Name; item.NumberOfPages = data.totalPages; item.InnerNumberOfPages = "0"; item.OuterNumberOfPages = "0"; item.NumberOfColorPages = "0"; array[i] = item; } book.DustJacket = array; } return(six.Serialize()); } catch (Exception ex) { LogWriter.LogWriter.WriteEntry("Error when trying to create SEWII SIX file"); LogWriter.LogWriter.WriteEntry(ex.Message); return(null); } }