public static Loan CreateLoanFrom(Book book, Member member) { Loan loan = new Loan(); loan.Book = book; loan.Member = member; loan.LoanDate = DateTime.Now; loan.DateForReturn = DateTime.Now.AddDays(7); return loan; }
public void Return(Book book) { Loan loan = FindCurrentOutstandingLoanFor(book); if (loan != null) { loan.MarkAsReturned(); book.OnLoanTo = null; } else throw new ApplicationException(String.Format("Cannot return book '{0}'. Member '{1}' does not have this book on loan.", book.Id.ToString(), this.Id.ToString())); }
public Loan Loan(Book book) { Loan loan = default(Loan); if (CanLoan(book)) { loan = LoanFactory.CreateLoanFrom(book, this); Loans.Add(loan); } else throw new ApplicationException(String.Format("Cannot loan book '{0}'. Book is on to member '{1}'", book.Id.ToString(), book.OnLoanTo.Id.ToString())); return loan; }
public AddBookResponse AddBook(AddBookRequest request) { AddBookResponse response = new AddBookResponse(); BookTitle bookTitle = _bookTitleRepository.FindBy( request.ISBN); Book book = new Book(); book.Title = bookTitle; book.Id = Guid.NewGuid(); _bookRepository.Add(book); _uow.Commit(); response.Success = true; return response; }
public bool CanLoan(Book book) { return book.OnLoanTo == null; }
private Loan FindCurrentOutstandingLoanFor(Book book) { return Loans.FirstOrDefault(l => (l.Book.Id == book.Id && l.HasNotBeenReturned())); }