using System; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Globalization; using System.Linq; using Books.ConsoleApp; namespace Books.ConsoleApp { class Program { private static IBooksSource BooksSource = new BooksJsonSource(); private static List BooksByAuthorCatalog = null; static void Main(string[] args) { IEnumerable books = BooksSource.Read(); BooksByAuthorCatalog = new List(); while (true) { System.Console.WriteLine("\nActions available:"); System.Console.WriteLine("1 - Output all books by author (Section 2)"); System.Console.WriteLine("2 - Search books by title (Section 3)"); System.Console.WriteLine("Any other key - Exit"); var key = System.Console.ReadKey(); switch (key.KeyChar) { case '1': Output.BooksByAuthor(BooksSource.Read()); break; case '2': DoSearch(); break; default: return; } } } public static void DoSearch() { var books = BooksSource.Read(); while (true) { System.Console.WriteLine("\nSearch by book title or a part of it. \n^^^^Type 'exit' to go back^^^^"); var searchTerm = System.Console.ReadLine(); if (searchTerm == "exit") { return; } if (!string.IsNullOrEmpty(searchTerm)) { var booksByAuthor = Search.ByTitle(books, searchTerm); if (booksByAuthor.Count() == 0) { System.Console.WriteLine($"No books found for '{searchTerm}'"); } else { foreach (var b in booksByAuthor) { System.Console.WriteLine($"{b.author}: {b.title}"); } } } System.Console.WriteLine("----------------------"); } } } }