public async Task <ActionResult <BookMongoDTO> > AddBook([FromBody] BookMongoDTO book) { var author = await writersRepository.FindWriter(book.Writer.Id); if (author != null) { book.Writer = author; } else { var addWriterResult = writersRepository.AddWriter(book.Writer); if (addWriterResult == null) { return(BadRequest()); } } var addBookResult = await booksRepository.AddBook(book); if (addBookResult != null) { return(Ok(CreateLinksForBook(addBookResult))); } else { await writersRepository.DeleteWriter(book.Writer.Id); return(BadRequest()); } }
private BookMongoDTO CreateLinksForBook(BookMongoDTO book) { book.Links.Add(new LinkDTO(Url.Link("GetBook", new { id = book.Id }), "self", "GET")); book.Links.Add(new LinkDTO(Url.Link("UpdateBook", null), "update_book", "PUT")); book.Links.Add(new LinkDTO(Url.Link("DeleteBook", new { id = book.Id }), "delete_book", "DELETE")); if (book.Writer != null) { book.Writer = CreateLinksForWriter(book.Writer); } return(book); }
public async Task <bool> UpdateBook(BookMongoDTO book) { var updateResult = await libraryContext .Books .ReplaceOneAsync( filter : g => g.Id == book.Id, replacement : book); return(updateResult.IsAcknowledged && updateResult.ModifiedCount > 0); }
public async Task <BookMongoDTO> AddBook(BookMongoDTO book) { try { await libraryContext.Books.InsertOneAsync(book); return(book); } catch (Exception) { return(null); } }
public async Task <IActionResult> UpdateBook(BookMongoDTO book) { var result = await booksRepository.UpdateBook(book); if (result) { return(Ok("Resource updated!")); } else { return(BadRequest()); } }