//добавление книг public void Add_book(Book book) { Book_Subscr newbook = new Book_Subscr(book, null, DateTime.Today.Date); Books_in_Lib.Add(newbook); BookAdded?.Invoke(this, book); }
public void Test_Sub_missing() { Book_Subscr newbook = new Book_Subscr(book1, sub1, Convert.ToDateTime("11.05.2017")); library.Books_in_Lib.RemoveAt(library.Book_Index(book1)); library.Books_in_Lib.Add(newbook); Assert.AreEqual(sub1.Missing_book()[0].Name, "Преступление и наказание"); }
//выдача книг public void Give_book(Subscriber sub, Book book) { if (Books_in_Lib.Count != 0) { if (sub.Missing_book().Count != 0) { Console.WriteLine("Выдача книги не возможна"); } else { if (sub.Having_book().Count == 5) { Console.WriteLine("Выдача книги не возможна"); } else { int rare_num_book = 0; foreach (Book b in sub.Having_book()) { if (b.Rare == true) { rare_num_book++; } } if ((rare_num_book < 2 && book.Rare != true) || (rare_num_book < 1 && book.Rare == true)) { int num = Book_Index(book); if (num != -1) { Books_in_Lib.RemoveAt(Book_Index(book)); Book_Subscr newbook = new Book_Subscr(book, sub, DateTime.Today.Date); Books_in_Lib.Add(newbook); state = Book_State.notinLib; StateChanged?.Invoke(this, state); } else { Console.WriteLine("Такой книги нет"); } } else { Console.WriteLine("Выдача книги невозможна"); } } } } else { Console.WriteLine("В библиотеке нет книг"); } }
//поиск по названию public Book_Subscr Name_search(string book_name) { Book_Subscr book = new Book_Subscr(); for (int i = 0; i < Books_in_Lib.Count(); i++) { if (Books_in_Lib[i].book.Name == book_name) { book = Books_in_Lib[i]; } } return(book); }
//поиск по автору public Book_Subscr Author_search(string aurth_name) { Book_Subscr book = new Book_Subscr(); for (int i = 0; i < Books_in_Lib.Count(); i++) { if (Books_in_Lib[i].book.Author == aurth_name) { book = Books_in_Lib[i]; } } return(book); }
//Поиск по автору или названию public Book_Subscr this[string author, string name] { get { Book_Subscr b = new Book_Subscr(); foreach (Book_Subscr book in Books_in_Lib) { if (book.book.Name == name || book.book.Author == author) { b = book; break; } } if (b.book == null) { throw new Exception(); } else { return(b); } } }
//возврат книг public void Return_book(Book book) { if (Books_in_Lib.Count() != 0) { int num = Book_Index(book); if (num == -1) { Console.WriteLine("Книгу брали не из данной библиотеки"); } else { Books_in_Lib.RemoveAt(num); Book_Subscr newbook = new Book_Subscr(book, null, DateTime.Today.Date); Books_in_Lib.Add(newbook); state = Book_State.inLib; StateChanged?.Invoke(this, state); } } else { Console.WriteLine("Возврат не возможен, в библиотеке нет книг"); } }