public int EditBook(BookUpdateRequest model) { using (var conn = DbConnection()) { int id = 0; if (conn.State == ConnectionState.Open) { using (var cmd = new SqlCommand("Book_Update", conn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Book_Id", model.Book_Id); cmd.Parameters.AddWithValue("@Title", model.Title); cmd.Parameters.AddWithValue("@Genre", model.Genre); cmd.Parameters.AddWithValue("@Publication_Date", model.Publication_Date); cmd.Parameters.AddWithValue("@Price", model.Price); cmd.Parameters.AddWithValue("@Description", model.Description); cmd.Parameters.AddWithValue("@Author_Id", model.Author_Id); cmd.ExecuteNonQuery(); id = (int)cmd.Parameters["@Book_Id"].Value; } } else { BadConnection(); } return(id); } }
public IActionResult UpdateBookForAuthor(Guid authorId, Guid id, [FromBody] BookUpdateRequest book) { if (book == null) { return(BadRequest()); } if (book.Description == book.Title) { ModelState.AddModelError(nameof(BookUpdateRequest), "The provided description should be different from the title."); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (!_libraryRepository.AuthorExists(authorId)) { return(NotFound()); } var bookForAuthorFromRepo = _libraryRepository.GetBookForAuthor(authorId, id); if (bookForAuthorFromRepo == null) { var bookToAdd = book.ConvertToBook(); bookToAdd.Id = id; _libraryRepository.AddBookForAuthor(authorId, bookToAdd); if (!_libraryRepository.Save()) { throw new Exception($"Upserting book {id} for author {authorId} failed on save."); } var bookToReturn = new BookResponse(bookToAdd); return(CreatedAtRoute("GetBookForAuthor", new { authorId = authorId, id = bookToReturn.Id }, bookToReturn)); } bookForAuthorFromRepo.Title = book.Title; bookForAuthorFromRepo.Description = book.Description; _libraryRepository.UpdateBookForAuthor(bookForAuthorFromRepo); if (!_libraryRepository.Save()) { throw new Exception($"Updating book {id} for author {authorId} failed on save."); } return(NoContent()); }
public IHttpActionResult Put(BookUpdateRequest model) { if (!ModelState.IsValid) { return(BadRequest()); } else { return(Ok("Book number " + svc.EditBook(model) + " has been updated")); } }
public BookUpdateRequestHandlerTests() { var fixture = new Fixture(); fixture.Behaviors.Add(new OmitOnRecursionBehavior()); _commandDispatcher = new Mock <ICommandDispatcher>(); _testRequest = fixture.Create <BookUpdateRequest>(); _handler = new BookUpdateRequestHandler(_commandDispatcher.Object); }
public BookResponse UpdateBook(int bookId, BookUpdateRequest book) { var bookToUpdate = _mapper.Map <Book>(book); bookToUpdate.BookId = bookId; var updatedBook = _libraryContext.Books.Update(bookToUpdate); _libraryContext.SaveChanges(); return(_mapper.Map <BookResponse>(updatedBook.Entity)); }
public async Task <ActionResult <BookResponse> > Put([FromBody] BookUpdateRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var model = _mapper.Map <Book>(request); await _db.UpdateAsync(model); _logger.LogInformation("Книга {0} успешно изменена", request.Id); var result = _mapper.Map <BookResponse>(model); return(Ok(result)); }