public ActionResult EditBook(string operation, string bookId) { var user = Bl.Users.Current; if (!user.IsAdmin) { return(RedirectToAction("Default", "Home")); } EditBookInfo edit; if (operation == "Add") { edit = new EditBookInfo { PurchaseDate = DateTime.Now.ToShortDateString(), PageTitle = "Register New Book", Operation = "Add", Confirmmation = Utility.BuildConfirm("Are you sure to regist this book?") }; return(View(edit)); } var id = long.Parse(bookId); Book book; using (var db = new BookLibraryContext()) { book = db.Books.Include("BookType").FirstOrDefault(b => b.BookId == id); } if (book == null) { var alert = Utility.BuildAlert("Invalid book ID [{0}].", bookId); return(JavaScript(alert)); } edit = new EditBookInfo { PageTitle = "Edit Book Information", Operation = "Save", Confirmmation = Utility.BuildConfirm("Are you sure to save the changes?") }; edit.LoadInfo(book); return(View(edit)); }
public ActionResult EditBook(EditBookInfo editInfo) { string alert; var user = Bl.Users.Current; if (!user.IsAdmin) { return(RedirectToAction("Default", "Home")); } var bookNumber = editInfo.BookNumber; if (string.IsNullOrEmpty(bookNumber)) { alert = Utility.BuildAlert("Book number could not be empty."); return(JavaScript(alert)); } if (editInfo.Operation == "Add") { using (var db = new BookLibraryContext()) { var existBook = db.Books.Include("BookType").FirstOrDefault(b => b.BookNumber == bookNumber); if (existBook != null) { alert = Utility.BuildAlert("The book number [{0}] conflict with the book {1}.", bookNumber, existBook.BookType.Title); return(JavaScript(alert)); } var book = CreateNewBook(editInfo); db.Books.Add(book); db.SaveChanges(); alert = Utility.BuildAlert("The new book was added."); return(JavaScript(alert)); } } else if (editInfo.Operation == "Edit") { using (var db = new BookLibraryContext()) { var bookId = long.Parse(editInfo.BookId); var existBook = db.Books.Include("BookType").FirstOrDefault(b => b.BookId != bookId && b.BookNumber == bookNumber); if (existBook != null) { alert = Utility.BuildAlert("The book number [{0}] conflict with the book {1}.", bookNumber, existBook.BookType.Title); return(JavaScript(alert)); } var book = db.Books.Include("BookType").FirstOrDefault(b => b.BookId == bookId); editInfo.StoreInfo(book); db.SaveChanges(); alert = Utility.BuildAlert("Book information updated."); return(JavaScript(alert)); } } else { alert = Utility.BuildAlert("Invalid operation {0}.", editInfo.Operation); return(JavaScript(alert)); } }