public async Task <IActionResult> Edit(int id, [Bind("BookId,GenreId")] GenreBook genreBook) { if (id != genreBook.BookId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(genreBook); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GenreBookExists(genreBook.BookId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["BookId"] = new SelectList(_context.Books, "BookId", "Name", genreBook.BookId); ViewData["GenreId"] = new SelectList(_context.Genres, "GenreId", "Name", genreBook.GenreId); return(View(genreBook)); }
public async Task <IActionResult> Create([Bind("BookId,GenreId")] GenreBook genreBook) { if (ModelState.IsValid) { _context.Add(genreBook); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["BookId"] = new SelectList(_context.Books, "BookId", "Name", genreBook.BookId); ViewData["GenreId"] = new SelectList(_context.Genres, "GenreId", "Name", genreBook.GenreId); return(View(genreBook)); }
public async Task <GenreBook> AddGenreBook(string bookId, string genreId) { var genreBook = new GenreBook { Id = Guid.NewGuid().ToString(), BookId = bookId, GenreId = genreId, Book = await _applicationContext.Books.FindAsync(bookId), Genre = await _applicationContext.Genres.FindAsync(genreId) }; await _applicationContext.GenreBooks.AddAsync(genreBook); await _applicationContext.SaveChangesAsync(); return(await _applicationContext.GenreBooks.FirstOrDefaultAsync(w => string.Equals(w.Id, genreBook.Id))); }
public async Task <ActionResult> Put(int id, [FromBody] Book book) { if (id != book.Id) { return(BadRequest()); } var dbbook = _db.Books.Include(b => b.GenreBooks).FirstOrDefault(b => b.Id == id); if (dbbook == null) { return(NotFound()); } dbbook.Name = book.Name; dbbook.Author = book.Author; var dbgenrebooks = _db.GenreBooks.Where(b => b.BookId == dbbook.Id).ToList(); foreach (var item in dbgenrebooks) { dbbook.GenreBooks.Remove(item); } var genreBooks = new List <GenreBook>(); foreach (var item in book.GenreBooks) { GenreBook genreBook = new GenreBook { GenreId = item.GenreId, BookId = dbbook.Id }; genreBooks.Add(genreBook); } dbbook.GenreBooks = genreBooks; await _db.SaveChangesAsync(); return(Ok()); }
protected override void Seed(LibrarianContext context) { #region DataCreation var hl = new Author { Name = "Harper", Surname = "Lee" }; var ng = new Author { Name = "Neil", Surname = "Gaiman" }; var ft = new Genre("Fantasy"); var cl = new Genre("Classics"); var js = new Reader(345) { Name = "John", Surname = "Smith", Passport = "EE 300000", Phone = "+380456378134" }; var tkam = new Book { Title = "To kill a mockingbird", PageCount = 420, Number = 568, IsBorrowed = true }; var ag = new Book { Title = "American gods", PageCount = 600, Number = 8934 }; var tgb = new Book { Title = "The graveyard book", PageCount = 350, Number = 784 }; var rc1 = new Record { Book = ag, BookId = ag.Id, Reader = js, ReaderId = js.Id, BorrowDate = new DateTime(2020, 12, 13), ReturnDate = new DateTime(2020, 12, 20) }; var rc2 = new Record { Book = tkam, BookId = tkam.Id, Reader = js, ReaderId = js.Id, BorrowDate = new DateTime(2020, 12, 13) }; var hl_tkm = new BookAuthor() { Book = tkam, BookId = tkam.Id, Author = hl, AuthorId = hl.Id }; var ng_ag = new BookAuthor() { BookId = ag.Id, AuthorId = ng.Id }; var ng_tgb = new BookAuthor() { BookId = tgb.Id, AuthorId = ng.Id }; var cl_tkm = new GenreBook() { GenreId = cl.Id, BookId = tkam.Id }; var ft_ag = new GenreBook() { GenreId = ft.Id, BookId = ag.Id }; var ft_tgb = new GenreBook() { GenreId = ft.Id, BookId = tgb.Id }; tkam.Genres.Add(cl); cl.Books.Add(tkam); tkam.Authors.Add(hl); hl.Books.Add(tkam); tgb.Genres.Add(ft); ft.Books.Add(tgb); tgb.Authors.Add(ng); ng.Books.Add(tgb); ag.Genres.Add(ft); ft.Books.Add(ag); ag.Authors.Add(ng); ng.Books.Add(ag); js.Records.Add(rc1); js.Records.Add(rc2); #endregion context.Authors.AddRange(new[] { hl, ng }); context.Books.AddRange(new[] { tkam, tgb, ag }); context.Genres.AddRange(new[] { cl, ft }); context.Readers.AddRange(new[] { js }); context.Records.AddRange(new[] { rc1, rc2 }); context.GenreBooks.AddRange(new[] { ft_ag, ft_tgb, cl_tkm }); context.BookAuthors.AddRange(new[] { ng_ag, ng_tgb, hl_tkm }); context.SaveChanges(); base.Seed(context); }
public async Task DeleteGenreBook(GenreBook genreBook) { _applicationContext.GenreBooks.Remove(genreBook); await _applicationContext.SaveChangesAsync(); }