public bool checkedoutBookItem(BookItem bookitem) { // First check if quota maxed out if (this.gettotalBooksCheckedOut() >= Contants.MAX_BOOK_LEND) { Console.WriteLine("Lend quota maxed out"); return(false); } BookReservation reservation = BookReservation.FetchReservationDetails(bookitem.getBarcode()); if (reservation != null && reservation.getUserId() != this.getUserId()) { Console.WriteLine("Reserved by other user"); return(false); } else if (reservation != null && reservation.getUserId() == this.getUserId()) { Console.WriteLine("Update reservation status"); reservation.updateStatus(ReservationStatus.completed); } if (!bookitem.Checkout(this.getUserId())) { return(false); } this.incrementtotalBooksCheckedOut(); return(true); }
public bool checkForFine(BookItem bookitem) { BookLending lending = BookLending.FetchLendingDetails(bookitem.getBarcode()); Date dueDate = lending.dueDate; Date today = new Date(); if (today.CompareTo(dueDate) > 0) { int extradays = Date.Today() - dueDate; Fine.CollectForFine(this.getUserId(), extradays); } }
public bool ReturnBook(BookItem bookitem) { this.checkForFine(bookitem); BookReservation BookReservation = BookReservation.FetchReservationDetails(bookitem.getBarcode()); if (BookReservation != null) { BookItem.updateStatus(BookStatus.Reserved); BookReservation.SendBookAvailableNotification(); } bookitem.updateStatus(BookStatus.avaialble); }