Exemple #1
0
        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);
        }
Exemple #5
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
    /// <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);
        }
    }