public IActionResult CheckOut(CheckedOutBook checkedOutBook) { checkedOutBook.id = 0; Book book = _unitOfWork.Book.Get(checkedOutBook.BookId); book.Available = book.Total - book.CheckedOut; checkedOutBook.DueDate = DateTime.Now.AddDays(14); if (_unitOfWork.LibraryMember.Get(checkedOutBook.MemberId) == null) { ModelState.AddModelError("", "Member Does Not Exist"); return(View(checkedOutBook)); } if (book.Available > 0) { book.CheckedOut++; _unitOfWork.Book.UpdateCheckOut(book); _unitOfWork.CheckedOutBook.Add(checkedOutBook); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } ModelState.AddModelError("", "Unkown Error Occurred"); return(View(checkedOutBook)); }
public IActionResult CheckIn(int id) { CheckedOutBook checkedOutBook = new CheckedOutBook { BookId = id, }; return(View(checkedOutBook)); }
public IActionResult CheckInPost([FromBody] string[] bookMemberId) { //bookMemberId is passed as string array from LibraryMemberDetails.js with bookId in index [0] and memberId in index [1]. This is then used to pull the correct checkedout book from the CheckedOutBook table CheckedOutBook checkedOutBook = _unitOfWork.CheckedOutBook.GetFirstOrDefault(u => (u.BookId == Int32.Parse(bookMemberId[0])) && (u.MemberId == Int32.Parse(bookMemberId[1])), includeProperties: "Book,Member"); if (checkedOutBook == null) { return(Json(new { success = false })); } if (DateTime.Compare(checkedOutBook.DueDate, DateTime.Now) < 0) { checkedOutBook.Member.LateFees = DateTime.Now.Subtract(checkedOutBook.DueDate).Days *overdueFee; _unitOfWork.LibraryMember.UpdateLateFee(checkedOutBook.Member); } checkedOutBook.Book.CheckedOut--; _unitOfWork.Book.UpdateCheckOut(checkedOutBook.Book); _unitOfWork.CheckedOutBook.Remove(checkedOutBook); _unitOfWork.Save(); return(Json(new { success = true })); }
public IActionResult CheckIn(CheckedOutBook checkedOutBook) { Book book = _unitOfWork.Book.Get(checkedOutBook.BookId); checkedOutBook = _unitOfWork.CheckedOutBook.GetFirstOrDefault(u => u.MemberId == checkedOutBook.MemberId); if (checkedOutBook == null) { ModelState.AddModelError("", "Selected Member has not checked out this book"); return(View(checkedOutBook)); } if (book.CheckedOut > 0) { book.CheckedOut--; _unitOfWork.Book.UpdateCheckOut(book); _unitOfWork.CheckedOutBook.Remove(checkedOutBook); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } ModelState.AddModelError("", "Unkown Error Occurred"); return(View(book)); }
public IActionResult CheckInOut(CheckedOutBook checkedOutBook, string checkOut, string checkIn) { checkedOutBook.BookId = _unitOfWork.Book.GetFirstOrDefault(u => u.ISBN.Equals(checkedOutBook.Book.ISBN)).id; Book book = _unitOfWork.Book.Get(checkedOutBook.BookId); checkedOutBook.Member = _unitOfWork.LibraryMember.Get(checkedOutBook.MemberId); checkedOutBook.Member.BookOverdue = HasOverdueBooks(checkedOutBook.MemberId); book.Available = book.Total - book.CheckedOut; if (book == null) { ModelState.AddModelError("", "ISBN Not Valid"); return(View(checkedOutBook)); } if (_unitOfWork.LibraryMember.Get(checkedOutBook.MemberId) == null) { ModelState.AddModelError("", "Member ID Not Valid"); } if (!string.IsNullOrEmpty(checkOut)) { //Member cannot checkout books if they have overdue books or unpaid late fees if (checkedOutBook.Member.BookOverdue) { ModelState.AddModelError("", "Member has overdue books"); return(View(checkedOutBook)); } if (checkedOutBook.Member.LateFees > 0) { ModelState.AddModelError("", "Memeber has unpaid late fees"); } if (book.Available <= 0) { ModelState.AddModelError("", "All available copies of " + book.Title + " are checked out"); return(View()); } //In this implementation, user is only allowed to checkout one copy of a book if (_unitOfWork.CheckedOutBook.GetFirstOrDefault(s => s.MemberId == checkedOutBook.MemberId) != null) { ModelState.AddModelError("", _unitOfWork.LibraryMember.Get(checkedOutBook.MemberId).Name + " has already checked out " + book.Title); return(View()); } checkedOutBook.Book = _unitOfWork.Book.Get(checkedOutBook.BookId); checkedOutBook.DueDate = DateTime.Now.AddDays(14); book.CheckedOut++; _unitOfWork.Book.UpdateCheckOut(book); _unitOfWork.CheckedOutBook.Add(checkedOutBook); _unitOfWork.Save(); return(RedirectToAction(nameof(ConfirmCheckInOut), checkedOutBook)); } if (!string.IsNullOrEmpty(checkIn)) { checkedOutBook = _unitOfWork.CheckedOutBook.GetFirstOrDefault(s => s.MemberId == checkedOutBook.MemberId); //Update users late fee if book is overdue if (DateTime.Compare(checkedOutBook.DueDate, DateTime.Now) < 0) { checkedOutBook.Member.LateFees = DateTime.Now.Subtract(checkedOutBook.DueDate).Days *overdueFee; _unitOfWork.LibraryMember.UpdateLateFee(checkedOutBook.Member); } if (book.CheckedOut <= 0) { ModelState.AddModelError("", "No copies of " + book.Title + " are checked out"); return(View()); } if (checkedOutBook == null) { ModelState.AddModelError("", "Selected Member has not checked out this book"); return(View(checkedOutBook)); } book.CheckedOut--; _unitOfWork.Book.UpdateCheckOut(book); _unitOfWork.CheckedOutBook.Remove(checkedOutBook); _unitOfWork.Save(); return(RedirectToAction(nameof(ConfirmCheckInOut), checkedOutBook)); } ModelState.AddModelError("", "Unknown Error Occurred"); return(View(checkedOutBook)); }
public IActionResult ConfirmCheckInOut(CheckedOutBook checkedOutBook) { return(View(checkedOutBook)); }