コード例 #1
0
        public IActionResult DeleteAuthorBook(int id)
        {
            AuthorBook editAuthorBook = authorBookRepository.GetAuthorBook(id);

            if (editAuthorBook == null)
            {
                ViewBag.Object = "AuthorBook";
                return(View("Views/Home/ObjectNotFound.cshtml", id));
            }

            authorBookRepository.Delete(id);
            return(RedirectToAction("DisplayAllAuthorBooks"));
        }
コード例 #2
0
        public async Task Update(BookEditDto book)
        {
            var bookDb = await _bookRepo
                         .GetAll()
                         .FirstOrDefaultAsync(b => b.Id == book.Id);

            _mapper.Map(book, bookDb);

            _bookRepo.Update(bookDb);
            await _bookRepo.SaveChangesAsync();

            var oldBookAuthors = await _authorBookRepo
                                 .GetAll()
                                 .Where(ab => ab.BookId == book.Id)
                                 .ToListAsync();

            foreach (var ab in oldBookAuthors)
            {
                _authorBookRepo.Delete(ab);
            }

            await _authorBookRepo.SaveChangesAsync();

            var newBookAuthors = book
                                 .AuthorsIds
                                 .Select(aId => new AuthorBook {
                AuthorId = aId, BookId = bookDb.Id
            });

            foreach (var ab in newBookAuthors)
            {
                await _authorBookRepo.CreateAsync(ab);
            }

            await _authorBookRepo.SaveChangesAsync();
        }