/// <summary> /// Find appropriate books through books collection. /// </summary> /// <param name="parameter">Criteria.</param> /// <param name="books">Collection.</param> /// <returns>Appropriate books collection.</returns> public IEnumerable <Book> FindBooks(IFinder <Book> predicate, AbstractBookStorage books) { IList <Book> allBooksInStorage = Refresh(books); List <Book> findedBooks = new List <Book>(); foreach (var book in allBooksInStorage) { if (predicate.BookIsRight(book)) { findedBooks.Add(book); } } if (findedBooks.Count == 0) { throw new BookNotExistsException("Error: we could't find book(s) with such criteria."); } return(findedBooks); }
/// <summary> /// Find appropriate books through books collection. /// </summary> /// <param name="parameter">Criteria.</param> /// <param name="books">Collection.</param> /// <returns>Appropriate books collection.</returns> public IEnumerable <Book> FindBooks(IFinder <Book> predicate, AbstractBookStorage books) { IList <Book> allBooksInStorage = Refresh(books); List <Book> findedBooks = new List <Book>(); logger.Info($"Searching books by {predicate} criteria."); foreach (var book in allBooksInStorage) { if (predicate.BookIsRight(book)) { findedBooks.Add(book); } } if (findedBooks.Count == 0) { logger.Error("We can not find book(s) with such criteria."); } return(findedBooks); }