public IActionResult Edit(BookEditVm vm) { var editedBook = new BookDetails(); var book = bookService.GetBookById(vm.ID); var books = book.Copies.ToList(); editedBook.ID = vm.ID; editedBook.Title = vm.Title; editedBook.ISBN = vm.ISBN; editedBook.Description = vm.Description; editedBook.AuthorID = vm.AuthorID; if (book.Copies.Count > vm.NumberCopies) { for (int i = books.Count; i > vm.NumberCopies; i--) { books.RemoveAt(books.Count - 1); } editedBook.Copies = books; } if (book.Copies.Count < vm.NumberCopies) { for (int i = books.Count; i < vm.NumberCopies; i++) { book.Copies.Add(new BookCopy()); } editedBook.Copies = book.Copies; } bookService.UpdateBookDetails(editedBook); return(RedirectToAction(nameof(Index))); }
public ActionResult Edit(int id, BookEditVm vm) { try { if (id == 0) { return(NotFound()); } BookDetails updatedBook = new BookDetails { ID = vm.Id, AuthorID = vm.AuthorId, Description = vm.Description, ISBN = vm.ISBN, Title = vm.Title }; _bookService.UpdateBookDetails(updatedBook); return(RedirectToAction(nameof(Index))); } catch (DbException) { return(View()); } }
// GET: Books/Edit public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var book = bookService.GetBook(id); if (book == null) { return(NotFound()); } var vm = new BookEditVm(); vm.Id = book.Id; vm.ISBN = book.ISBN; vm.Title = book.Title; vm.AuthorId = book.AuthorId; vm.Description = book.Description; vm.Authors = new SelectList(authorService.GetAllAuthors(), nameof(Author.Id), nameof(Author.Name), book.AuthorId); vm.AmountOfCopies = book.Copies.Count(); return(View(vm)); }
public ActionResult Edit(int id) { if (id == 0) { return(NotFound()); } var vm = new BookEditVm { AuthorList = new SelectList(_authorService.GetAllAuthors(), "Id", "Name"), Book = _bookService.FindBook(id) }; return(View(vm)); }
public async Task <IActionResult> Edit(BookEditVm vm) { if (ModelState.IsValid) { var editBook = new BookDetails(); editBook.AuthorID = vm.AuthorId; editBook.Description = vm.Description; editBook.ISBN = vm.ISBN; editBook.Title = vm.Title; editBook.ID = vm.ID; bookservice.UpdateBookDetails(editBook); return(RedirectToAction(nameof(Index))); } return(RedirectToAction("Error", "Home", "")); }
//// GET: Books/Edit/5 public async Task <IActionResult> Edit(int id)/*int? id*/ { if (ModelState.IsValid) { var vm = new BookEditVm(); var book = bookservice.GetBook(id); vm.Title = book.Title; vm.Description = book.Description; vm.ISBN = book.ISBN; vm.AuthorId = book.AuthorID; vm.ID = book.ID; vm.AuthorList = new SelectList(authorService.GetAllAuthors(), "Id", "Name"); return(View(vm)); } return(RedirectToAction("Error", "Home", "")); }
//GET: Gets the chosen book to edit public IActionResult Edit(int id) { var book = bookService.GetBookById(id); var vm = new BookEditVm(); vm.ID = id; vm.Title = book.Title; vm.ISBN = book.ISBN; vm.Description = book.Description; vm.AuthorID = book.AuthorID; vm.Copies = book.Copies; vm.NumberCopies = vm.Copies.Count(); vm.AuthorList = new SelectList(authorService.GetAllAuthors(), "ID", "Name", book.AuthorID); return(View(vm)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,ISBN,Title,AuthorId,Description")] Book book, BookEditVm vm) { if (id != book.Id) { return(NotFound()); } if (ModelState.IsValid) { try { bookService.UpdateBook(book); } catch (DbUpdateConcurrencyException) { if (id != book.Id) { return(NotFound()); } else { throw; } } book.Copies = bookService.GetAllBookCopies(book.Id); if (book.Copies.Count() > vm.AmountOfCopies) { int difference = book.Copies.Count() - vm.AmountOfCopies; //Calculate how many more copies user wants deleted List <BookCopy> copiesToDelete = new List <BookCopy>(); foreach (var copy in book.Copies) { if (!copy.OnLoan) //If the copy is not on loan the copy will be deleted { copiesToDelete.Add(copy); difference--; } else if (copy.OnLoan && difference == book.Copies.Count()) //If the library is deleting all copies, delete loaned ones aswell { copiesToDelete.Add(copy); difference--; } if (difference == 0) { break; } } for (int i = 0; i < copiesToDelete.Count(); i++) { bookService.DeleteBookCopy(copiesToDelete[i]); //Delete copies } } else if (book.Copies.Count() < vm.AmountOfCopies) //If the user wants more copies of a book { int difference = vm.AmountOfCopies - book.Copies.Count(); //Calculate how many more copies user wants added for (int i = 0; i < difference; i++) { BookCopy copy = new BookCopy(); copy.BookId = book.Id; bookService.AddBookCopy(copy); //Add a new copy } } return(RedirectToAction(nameof(Admin))); } return(View(book)); }