public void Edit(PostBookViewModel bookViewModel) { Book book = Mapper.Map <PostBookViewItem, Book>(bookViewModel.PostBookViewItem); _bookRepository.Update(book); var listPublicationHoouseIds = bookViewModel.PostBookViewItem.PublicationHouses.Select(x => x.Id); var listToRemove = _publicationHouseBookRepository.Get(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => !listPublicationHoouseIds.Contains(x.PublicationHouseId)); _publicationHouseBookRepository.Remove(listToRemove); var listToAdd = MapToPublicationHouseBook(bookViewModel.PostBookViewItem) .Where(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => listPublicationHoouseIds.Contains(x.PublicationHouseId)); _publicationHouseBookRepository.Add(listToAdd); var listAuthorIds = bookViewModel.PostBookViewItem.Authors.Select(x => x.Id); var listToRemoveAuthors = _bookAuthorRepository.Get(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => !listAuthorIds.Contains(x.AuthorId)); _bookAuthorRepository.Remove(listToRemoveAuthors); var listToAddAuthors = MapToBookAuthor(bookViewModel.PostBookViewItem) .Where(x => x.BookId == bookViewModel.PostBookViewItem.Id) .Where(x => listAuthorIds.Contains(x.AuthorId)); _bookAuthorRepository.Add(listToAddAuthors); }
public IActionResult Put(int id, [FromBody] PostBookViewModel book) { if (ModelState.IsValid) { _bookService.Edit(book); return(Ok(book)); } return(BadRequest(ModelState)); }
public void Add(PostBookViewModel bookView) { Book book = Mapper.Map <PostBookViewModel, Book>(bookView); book.PublicationType = PublicationType.Book; _bookRepository.Add(book); AddRelationshipsBookPublisher(book, bookView.Publishers); AddRelationshipsBookAuthor(book, bookView.Authors); }
public void Add(PostBookViewModel bookViewModel) { Book book = Mapper.Map <PostBookViewModel, Book>(bookViewModel); _bookRepository.Add(book); bookViewModel.PostBookViewItem.Id = book.Id; var listToAdd = MapToPublicationHouseBook(bookViewModel.PostBookViewItem); _publicationHouseBookRepository.Add(listToAdd); var listAuthorsToAdd = MapToBookAuthor(bookViewModel.PostBookViewItem); _bookAuthorRepository.Add(listAuthorsToAdd); }
public IActionResult Post([FromBody] PostBookViewModel book) { _bookService.Add(book); return(Ok()); }