//Borrower cancels a Book Request public void CancelRequest(BookRequest request) { try { var requestToBeChanged = db.BookRequests.Find(request.BookRequestId); requestToBeChanged.RequestStatus = RequestStatuses.Canceled; db.SaveChanges(); } catch (SqlException) { throw; } }
//Borrower wants to return a book public void ReturnBookRequest(BookRequest request) { try { var requestToBeChanged = db.BookRequests.Find(request.BookRequestId); requestToBeChanged.RequestStatus = RequestStatuses.Returning; request.BookRequested.BorrowerAskedToReturnThisBook = true; db.SaveChanges(); } catch (SqlException) { throw; } }
//Inserts Request to the Database public void InsertRequest(ApplicationUser userAskingForBook, Book book) { BookRequest request = new BookRequest(); request.BookRequested = book; request.RequestedBy = userAskingForBook; try { db.BookRequests.Add(request); db.SaveChanges(); } catch (SqlException) { throw; } }
//Borrow a book from someone (Borrower received book) public void BorrowerReceivedBook(BookRequest request) { try { var circulation = db.BookCirculations.Where(c => c.RequestIdForThisCirculation == request.BookRequestId) .SingleOrDefault(); var bookToBeBorrowed = db.Books.Where(b => b.BookId == request.BookRequested.BookId) .SingleOrDefault(); var thisRequest = db.BookRequests.Find(request.BookRequestId); thisRequest.RequestStatus = RequestStatuses.BorrowedBook; circulation.BorrowerReceivedBook = true; circulation.CirculationStatus = CirculationStatuses.Borrowed; bookToBeBorrowed.AvailabilityStatus = false; bookToBeBorrowed.Carrier = db.Users.Find(request.RequestedBy.Id); db.SaveChanges(); } catch (SqlException) { throw; } }