public bool MakeReservation(string libraryName, string libraryAddress, Book book, IMakeReservationView makeReservationView) { var libraryRepository = _repositoryFactory.GetLibraryRepository(); var userRepository = _repositoryFactory.GetUserRepository(); var bookRepository = _repositoryFactory.GetBookRepository(); var user = LoginInfo.GetUser(); var library = libraryRepository.GetLibraryByNameAndAddress(libraryName, libraryAddress); var theBook = library.Books .Where(b => b.BookDetails.Title == book.BookDetails.Title && b.BookDetails.Publisher == book.BookDetails.Publisher && b.BookDetails.YearPublished == book.BookDetails.YearPublished) .FirstOrDefault(); if (theBook.IsReserved) { makeReservationView.NotifyOfReservedBook(book); return(false); } theBook.IsReserved = true; theBook.User = user; user.ReservedBooks.Add(theBook); bookRepository.Update(book); userRepository.Update(user); return(true); }
public MakeReservationPresenter(IMakeReservationView view, IEventAggregator eventAggregator) { this.view = view; this.eventAggregator = eventAggregator; SubscribeToEvents(); }