/// <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> /// Refresh books local collection. /// </summary> /// <param name="books">Books to be saved.</param> /// <returns>Books collection.</returns> public IList <Book> Refresh(AbstractBookStorage books) { return(booksRepository.Refresh(books)); }
/// <summary> /// Constrictor. /// </summary> /// <param name="storage">Storage wich contain all books data.</param> public BookListService(AbstractBookStorage storage) { booksRepository = storage; }