示例#1
0
 public void GiveRequestedBook()
 {
     if (HasBook)
     {
         throw new Exception($"{this} already has a book!");
     }
     if (RequestedBook == null)
     {
         throw new Exception($"{this} does not have a book requested.");
     }
     //Else, the book is good to go
     Console.WriteLine($"{this} has gotten their requested book, {RequestedBook}.");
     CheckedOutBook = RequestedBook;
     RequestedBook  = null;
 }
示例#2
0
        public void ReturnBook()
        {
            if (!HasBook)
            {
                throw new Exception($"{this} cannot return this book because they do not have a book!");
            }

            //Else, return the book
            Console.WriteLine($"{this} has returned {CheckedOutBook}.");
            CheckedOutBook.CheckIn();
            CheckedOutBook = null;
            if (RequestedBook != null)
            {
                GiveRequestedBook();
            }
        }
示例#3
0
 public void RequestBook(Book2 bk)
 {
     if (!HasBook && bk.IsAvailable)
     {
         CheckOutBook(bk);
     }
     else if (RequestedBook == null)
     {
         Console.WriteLine($"{Name} has requested {bk}.");
         bk.RegisterObserver(this);
         RequestedBook = bk;
     }
     else
     {
         throw new Exception("Person cannot have more than one book requested.");
     }
 }
示例#4
0
 public void CheckOutBook(Book2 bk)
 {
     bk.CheckOut();
 }
示例#5
0
        public void HandleBookRequest(Person2 p, string bookName)
        {
            Book2 b = bookList.Find(bk => bk.Title == bookName);

            p.RequestBook(b);
        }
示例#6
0
 public bool CheckAvailability(Book2 b)
 {
     return(b.IsAvailable);
 }
示例#7
0
 public void AddBook(Book2 b)
 {
     bookList.Add(b);
 }
示例#8
0
 private void CheckOutBook(Book2 bk)
 {
     Console.WriteLine($"{this} has checked out {bk}.");
     bk.CheckOut();
     CheckedOutBook = bk;
 }