Exemple #1
0
        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));
        }
Exemple #5
0
        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", ""));
        }
Exemple #6
0
 //// 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", ""));
 }
Exemple #7
0
        //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));
        }