static void Main(string[] args) { var path = "Books.txt"; var serialize_path = "Books_serialize.txt"; var xml_path = "Books_xml.xml"; var l2xml_path = "Books_l2xml.xml"; // IRepository<Book> rep = new BookRepository(path); // IRepository<Book> rep = new SerializeRepository(serialize_path); //IRepository<Book> rep = new XMLRepository(xml_path); IRepository<Book> rep = new Linq2XmlRepository(l2xml_path); var bookService = new BookListService(rep); Book[] books = { new Book("Albahari",@"C# in Nutshell",1,"ru"), new Book("Esposito",@"ASP .NET MVC 4",1,"ru"), new Book("Albahari",@"C# in Nutshell",1,"en"), new Book("Фримен",@"Паттерны проектирования",1,"ru") }; foreach (var e in books) { bookService.AddBook(e); } Console.WriteLine("Test Exception on adding"); var b = new Book("Esposito", @"ASP .NET MVC 4", 1, "ru"); try { bookService.AddBook(b); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Test finding the book"); var f = bookService.FindByTag(x => x.Author == "Esposito"); Console.WriteLine(f); Console.WriteLine("Test sorting"); var books_1 = bookService.SortBooksByTag(x => x.Author); foreach (var e in books_1) { Console.WriteLine(e); } bookService.RemoveBook(f); try { bookService.RemoveBook(f); } catch (Exception e) { Console.WriteLine(e.Message); } }
static void Main(string[] args) { FileBookRepository fileBookRepository = new FileBookRepository("file"); BookListService bls = new BookListService(fileBookRepository); Console.WriteLine("Исходный список книг:"); PrintListBooks(fileBookRepository.GetList().ToList()); Book book = new Book("Льюис Кэрролл", "Алиса в Стране чудес", 237, 1865, "Сказка"); Console.WriteLine("Пытаемся добавить книгу"); PrintBook(book); try { bls.AddBook(book); Console.WriteLine("Книга успешно добавлена"); } catch (Exception e) { Console.WriteLine("Ошибка: {0}\n", e.Message); } Console.WriteLine("Пытаемся удалить книгу"); try { bls.RemoveBook(book); Console.WriteLine("Книга успешно удалена"); } catch (Exception e) { Console.WriteLine("Ошибка: {0}\n", e.Message); } Console.WriteLine(); Console.WriteLine("Сохраняем список в файл и читаем из него"); bls.Save(); PrintListBooks(fileBookRepository.GetList().ToList()); Console.WriteLine("Снова пытаемся удалить книгу"); try { bls.RemoveBook(book); Console.WriteLine("Книга успешно удалена"); } catch (Exception e) { Console.WriteLine("Ошибка: {0}\n", e.Message); } Console.WriteLine("Пытаемся найти удаленную книгу по названию \"Алиса в Стране чудес\""); Book seaarchResult = bls.FindBook(b => b.Title == "Алиса в Стране чудес"); if (seaarchResult == null) { Console.WriteLine("Книга не найдена"); } else { Console.WriteLine("Книга найдена"); PrintBook(seaarchResult); } Console.WriteLine(); Console.WriteLine("Добавляем удаленную книгу и свнова пытаеся ее найти"); bls.AddBook(book); seaarchResult = bls.FindBook(b => b.Title == "Алиса в Стране чудес"); if (seaarchResult == null) { Console.WriteLine("Книга не найдена"); } else { Console.WriteLine("Книга найдена\n"); PrintBook(seaarchResult); } bls.Save(); Console.WriteLine(); Console.WriteLine("Полученный список"); PrintListBooks(fileBookRepository.GetList().ToList()); Console.WriteLine("Сортировка книг по автору"); bls.SortBooks((a, b) => string.Compare(a.Author, b.Author)); bls.Save(); PrintListBooks(fileBookRepository.GetList().ToList()); Console.WriteLine("Сортировка книг по названию"); bls.SortBooks((a, b) => string.Compare(a.Title, b.Title)); bls.Save(); PrintListBooks(fileBookRepository.GetList().ToList()); MakeTestFile("file"); Console.ReadKey(); }
private static void MakeTestFile(string path) { if (File.Exists(path)) File.Delete(path); BookListService bls = new BookListService(new FileBookRepository(path)); Book toAdd = new Book("Антуан де Сент-Экзюпери", "Маленький принц", 54, 1943, "Сказка"); bls.AddBook(toAdd); toAdd = new Book("Макс Фрай", "Лабиринт Менина", 316, 2003, "Фэнтези"); bls.AddBook(toAdd); toAdd = new Book("Льюис Кэрролл", "Алиса в Стране чудес", 237, 1865, "Сказка"); bls.AddBook(toAdd); toAdd = new Book("Виталий Зыков", "Безымянный раб", 609, 2004, "Фэнтези"); bls.AddBook(toAdd); bls.Save(); }