public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBooksRequest bookToAdd)
        {
            GetBookDetailsResponse response = await BooksMapper.Add(bookToAdd);


            return(CreatedAtRoute("books#getbookbyid", new { id = response.Id }, response));
        }
        public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBookCreate bookToAdd)
        {
            GetBookDetailsResponse response = await _bookCommands.AddBook(bookToAdd);

            // return a 201, with location header, with a copy of what they'd get from that location

            return(CreatedAtRoute("books#getbyid", new { bookId = response.Id }, response));
        }
Beispiel #3
0
        public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBooksRequest bookToAdd)
        {
            // Validate it. (if valid, return a 400 Bad Request)
            //if(!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}

            GetBookDetailsResponse response = await BooksMapper.Add(bookToAdd);

            return(CreatedAtRoute("books#getbookbyid", new { id = response.Id }, response));
        }
Beispiel #4
0
        public async Task <ActionResult <GetBookDetailsResponse> > GetBookById([FromRoute] int bookId)
        {
            GetBookDetailsResponse book = await _booksQuery.GetBooksById(bookId);

            if (book == null)
            {
                return(NotFound());
            }
            else
            {
                return(Ok(book));
            }
        }
        public async Task <ActionResult <GetBookDetailsResponse> > GetBookDetails(int id)
        {
            GetBookDetailsResponse response = await _bookLookup.GetBookById(id);

            if (response == null)
            {
                return(NotFound());
            }
            else
            {
                return(Ok(response));
            }
        }
        public async Task <ActionResult> UpdateBook(int bookId, [FromBody] GetBookDetailsResponse book)
        {
            var storedBook = await _context.Books.Where(b => b.Id == bookId && b.RemovedFromInventory == false).SingleOrDefaultAsync();

            if (storedBook == null)
            {
                return(NotFound());
            }
            else
            {
                storedBook.Title  = book.Title;
                storedBook.Author = book.Author;
                storedBook.Genre  = book.Genre;
                await _context.SaveChangesAsync();

                return(NoContent());
            }
        }
        public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBooksRequest bookToAdd)
        {
            // Validate it. (if invalid, return a 400 Bad Request)
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            // Don't use imperative validation, use field validation in model class
            // Add it to the domain.
            // - PostBooksRequest -> Books
            var book = new Book
            {
                Title         = bookToAdd.Title,
                Author        = bookToAdd.Author,
                Genre         = bookToAdd.Genre,
                NumberOfPages = bookToAdd.NumberOfPages,
                InInventory   = true
            };

            // - Add it to the context
            _libContext.Books.Add(book);
            // - Have the context save everything.
            await _libContext.SaveChangesAsync(); // this also creates an ID for the book

            // Return a 201 Created Status Code.
            // - Add a location header on the response, e.g. Location: http://server/books/8
            // - Add the entity
            // - Book -> GetBooksDetailResponse

            var response = new GetBookDetailsResponse
            {
                Id            = book.Id,
                Title         = book.Title,
                Author        = book.Author,
                Genre         = book.Genre,
                NumberOfPages = book.NumberOfPages
            };

            return(CreatedAtRoute("books#getbookbyid", new { id = response.Id }, response));
        }
Beispiel #8
0
        public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBookCreate bookToAdd)
        {
            GetBookDetailsResponse response = await _bookCommands.AddBook(bookToAdd);

            return(CreatedAtRoute("books#getbyid", new { bookId = response.Id }, response));
        }
Beispiel #9
0
        public async Task <ActionResult <GetBookDetailsResponse> > GetBookById(int id)
        {
            GetBookDetailsResponse response = await BooksMapper.GetBooksById(id);

            return(this.Maybe(response));
        }
        public async Task <ActionResult <GetBookDetailsResponse> > GetBookById(int id)
        {
            GetBookDetailsResponse book = await _bookLookup.GetBookByIdAsync(id);

            return(this.Maybe(book));
        }
        public async Task <ActionResult <GetBookDetailsResponse> > GetBookById([FromRoute] int bookId)
        {
            GetBookDetailsResponse book = await _booksQuery.GetBookById(bookId);

            return(this.Maybe(book));
        }
Beispiel #12
0
        public async Task <ActionResult> GetBookById(int id)
        {
            GetBookDetailsResponse response = await _bookLookup.GetBookById(id);

            return(this.Maybe(response));
        }