public ActionResult AddABook([FromBody] PostBookRequest request)
 {
     if (ModelState.IsValid)
     {
         var response = new GetBookResponse(request.Title, request.Author, request.NumberOfPages, new Random().Next(300, 1545));
         return(Ok(response));
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
Пример #2
0
        public async Task <ActionResult <GetBookResponse> > GetBook([FromRoute] GetBookRequest request)
        {
            var book = await _bookRepository.GetBook(request.Id.ToString());

            if (book is null)
            {
                return(NotFound(new NotFoundMessage("Book not found")));
            }

            var bookResource = _mapper.Map <Book, BookResource>(book);

            var response = new GetBookResponse(bookResource, StatusCodes.Status200OK);

            return(Ok(response));
        }
Пример #3
0
 void HandleAddToBookListResponse(GetBookResponse response)
 {
     if (getBookSource == "return")
     {
         returnBooks.Invoke(new Action(() =>
         {
             returnBooks.HandleAddToBookListResponse(response.Payload);
         }));
     }
     if (getBookSource == "checkout")
     {
         checkOut.Invoke(new Action(() =>
         {
             checkOut.HandleAddToCartResponse(response.Payload);
         }));
     }
 }
        public async Task <ActionResult <GetBookResponse> > GetAllBooks([FromQuery] string genre = "all")
        {
            var result = _context.Books
                         .Where(x => x.RemovedFromInventory == false);

            if (genre != "all")
            {
                result = result.Where(b => b.Genre == genre);
            }

            var response = new GetBookResponse
            {
                Genre = genre,
                Data  = await result.ProjectTo <GetBooksResponseItem>(_config).ToListAsync(),
                Count = result.Count()
            };

            return(Ok(response));
        }
Пример #5
0
        protected override async Task <GetBookResponse> GetBookAsync(GetBookRequest request)
        {
            var r = new GetBookResponse
            {
                BookData = request.NeedDetail ? new BookDataDetailed() : new BookDataBrief()
            };
            var bookPage = await GetDoc(new Uri($"/book/{request.BookKey}", UriKind.Relative));

            parseBookMeta(r.BookData, bookPage);
            parseBookPage(r.BookData, bookPage);
            if (r.BookData is BookDataDetailed detailed)
            {
                var chapsPage1 = await GetDoc(new Uri($"/read/{request.BookKey}", UriKind.Relative));

                var pc = parseReadPage(detailed, chapsPage1);
                for (var i = 1; i < pc; i++)
                {
                    var chapsPage = await GetDoc(new Uri($"/read/{request.BookKey}/{i + 1}", UriKind.Relative));

                    parseReadPage(detailed, chapsPage);
                }
            }
            return(r);
        }