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)); }
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)); }
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)); }
public async Task <ActionResult <GetBookDetailsResponse> > AddABook([FromBody] PostBookCreate bookToAdd) { GetBookDetailsResponse response = await _bookCommands.AddBook(bookToAdd); return(CreatedAtRoute("books#getbyid", new { bookId = response.Id }, response)); }
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)); }
public async Task <ActionResult> GetBookById(int id) { GetBookDetailsResponse response = await _bookLookup.GetBookById(id); return(this.Maybe(response)); }