static void Main(string[] args)
        {
            NLoggerAdapter  logger          = new NLoggerAdapter();
            BookListService bookListService = new BookListService(logger);

            bookListService.AddBook(new Book("Смок Беллью", "Джек Лондон", "ИФ \"LEAN\"", "Сначала он был Кристофер Беллью. В колледже он превратился в Криса Беллью. Позже..."));
            bookListService.AddBook(new Book("Книжный вор", "Маркус Зузак", "Эксмо", "Январь 1939 года. Германия. Страна, затаившая дыхание. Никогда еще у смерти не было столько работы..."));
            bookListService.AddBook(new Book("Повелитель мух", " Уильям Голдинг", "Астрель", "Светловолосый мальчик только что одолел последний спуск со скалы и теперь пробирался к лагуне..."));
            bookListService.AddBook(new Book("Три товапища", "Эрих Мария Ремарк", "Вагриус", " Небо было желтым, как латунь; его еще не закоптило дымом. За крышами фабрики оно светилось особенно сильно. Вот-вот должно было взойти солнце..."));
            bookListService.AddBook(new Book("Фиалки по средам", "Андре Моруа", "АСТ", "Лампы, освещавшие большую столовую, были затенены..."));
            bookListService.SortBookByTag(new BooksComparerByAuthor());
            BookListStorage         binaryStorage    = new BookListStorage();
            BinarySerializerStorage serializStrorage = new BinarySerializerStorage();
            XMLStorage xmlStorage = new XMLStorage();

            bookListService.SaveData(binaryStorage);
            bookListService.SaveData(serializStrorage);
            bookListService.SaveData(xmlStorage);
            bookListService = new BookListService(logger);
            bookListService.LoadData(binaryStorage);
            bookListService.LoadData(serializStrorage);
            bookListService.LoadData(xmlStorage);
            bookListService.AddBook(new Book("Стилист для снежного человека", "Дарья Донцова", "Эксмо", "Человек не способен лизнуть свой собственный локоть..."));
            Book toDelete = bookListService.FindBookByTag(new ComparableByName("Стилист для снежного человека"));

            bookListService.RemoveBook(toDelete);
            bookListService.SortBookByTag(new BooksComparerByText());
            bookListService.SaveData(binaryStorage);
            Console.WriteLine(bookListService.FindBookByTag(new ComparableByName("АСТ"))?.ToString());
            Console.ReadKey();
        }
Ejemplo n.º 2
0
        private static void Main(string[] args)
        {
            Book[] books =
            {
                new Book("978-0-7356-6745-7", "Jeffrey Richter", "CLR via C#", "Microsoft Press",  2012, 826,  59.99),
                new Book("1678995",           "author2",         "name2",      "publishingHouse2", 2016, 500, 30.151),
                new Book("234577777",         "author3",         "name3",      "publishingHouse3", 2014, 500,  30.15),
                new Book("234577777",         "author3",         "name3",      "publishingHouse3", 2014, 500, 30.15)
            };

            Console.WriteLine(books[0].ToString("ANT"));
            Console.WriteLine(books[0].ToString("IFIANTPYPP"));
            Console.WriteLine(books[0].ToString("ANTPY"));
            Console.WriteLine(books[0].ToString("IFIANTPYPPP"));
            BookListService service = new BookListService();

            ////service.AddBook(books[0],books[1]);
            service.AddBook(books[0]);
            service.AddBook(books[1]);
            service.AddBook(books[2]);
            service.AddBook(books[3]);
            Console.WriteLine("Are equal: " + Equals(service.GetBookList()[0], service.GetBookList()[1]));
            Console.WriteLine("Are equal: " + Equals(service.GetBookList()[2], service.GetBookList()[3]));
            Console.WriteLine(service.FindBookByTag(new FinderByMaxPrice()));
            Console.WriteLine(service.FindBookByTag(new FinderByMinPrice()));
            Console.WriteLine(service.FindBookByTag(new FinderByPublishingYearAndAuthor(2016, "author3")));
            service.SortBooksByTag(new ComparerByDecPrice());
            service.ShowBookList();
            service.SortBooksByTag(new ComparerByDecPublishingYear());
            service.ShowBookList();
            service.SortBooksByTag(new ComparerByIncPrice());
            service.ShowBookList();
            service.RemoveBook(books[2]);
            service.ShowBookList();
            service.RemoveBook(1678995);
            service.ShowBookList();
            Console.WriteLine("Write to binary file");
            IBookListStorage binaryStorage = new BookListBinaryFileStorage();

            service.SetBookListToStorage(binaryStorage);
            Console.WriteLine("Read from binary file");
            BookListService newService = new BookListService();

            newService.GetBookListFromStorage(binaryStorage);
            for (int i = 0; i < newService.GetBookList().Count; i++)
            {
                Console.WriteLine(newService.GetBookList()[i]);
            }

            Console.ReadLine();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            var bookListService = new BookListService();

            bookListService.AddBook(new Book()
            {
                ISBN                = 1337,
                Author              = "Author_1",
                Title               = "Title_1",
                PublishingHouse     = "PublishingHouse_1",
                TheYearOfPublishing = 1337,
                NumbersOfPage       = 1337,
                Price               = 1337
            });

            bookListService.AddBook(new Book()
            {
                ISBN                = 1608,
                Author              = "Author_2",
                Title               = "Title_2",
                PublishingHouse     = "PublishingHouse_2",
                TheYearOfPublishing = 1608,
                NumbersOfPage       = 1608,
                Price               = 1608
            });

            Console.WriteLine(bookListService.FindBookByTag(new FindBookByTitle("Title_2", bookListService.GetBooks(@"R:\states.txt"))));
            Console.WriteLine(bookListService.GetHashCode());
            Console.WriteLine(bookListService.Equals(bookListService.GetBooks(@"R:\states.txt")));

            bookListService.Save(@"R:\states.txt");
        }
Ejemplo n.º 4
0
        private static void BookListServiceTest()
        {
            var books = new List <Book>
            {
                new Book("999-9-99-999999-0", "Тепляков С.", "Паттерны проектирования", "publisher1", 2015, 312, 15.20d),
                new Book("999-9-99-999999-1", "Bart De Smet", "C# 4.0 Unleashed", "publisher2", 2010, 1605, 35.99d)
            };

            var bookListService = new BookListService(books);

            bookListService.Logger = new NLogger(nameof(BookListService));
            PrintBooks(bookListService.GetBooks());

            bookListService.AddBook(new Book("999-9-99-999999-2", "Jon Skeet", "C# in Depth. Third edition", "publisher3", 2014, 582, 25.99d));
            PrintBooks(bookListService.GetBooks());

            bookListService.SortBooksByTag(new TitleComparer());
            PrintBooks(bookListService.GetBooks());

            bookListService.RemoveBook(new Book("999-9-99-999999-1", "Bart De Smet", "C# 4.0 Unleashed", "publisher2", 2010, 1605, 35.99d));
            PrintBooks(bookListService.GetBooks());

            Console.WriteLine(bookListService.FindBookByTag(new IsTitleValid("C#")));
            Console.WriteLine();

            bookListService.Save(new BinaryFileStorage("books"));
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            BookListStorage storage = new BookListStorage("file.bin");
            BookListService service = new BookListService();

            service.AddBook(new Book("78565121ad45q", "Author 1", "First book", "Publisher 1", 1990, 200));
            service.AddBook(new Book("845dbn454545c", "Author 2", "Second Book", "Publisher 2", 1996, 5));
            service.AddBook(new Book("7854dshj98985", "Author 3", "New book", "Publisher 3", 2000, 45));

            ListInput(service.BookList);

            service.WriteBooks(storage, service.BookList);

            service.AddBook(new Book("84564dhbhb545", "Author 4", "Last book", "Publisher 1", 1995, 60));
            ListInput(service.BookList);

            service.SortBooksByTag(new SortByTitleAsc());
            ListInput(service.BookList);

            Book findedBook = service.FindBookByTag(new FindBookByTitle("Second Book"));

            Console.WriteLine(findedBook);
            Console.WriteLine();

            service.ReadBooks(storage);
            ListInput(service.BookList);

            Console.ReadLine();
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            Book            book1 = new Book("123-123", "pushkin", "slovo", "piter", "2018", 500, 100);
            Book            book2 = new Book("321-321", "lermontov", "borodino", "piter", "2016", 300, 300);
            Book            book3 = new Book("666-666", "gogol", "vij", "mosk", "1999", 102, 30);
            Book            book4 = new Book("666-666", "pushkin", "vij", "mosk", "1999", 102, 30);
            BookListService bls   = new BookListService();

            Console.WriteLine(book1.Equals(book1));
            Console.WriteLine(book1.Equals(book2));

            FileWorker fw = new FileWorker("C:/Users/Shumilin/Documents/Visual Studio 2017/Projects/NET.W.2018.Shumilin.8/file.txt");

            bls.Load(fw);

            //bls.AddBook(book1);
            //bls.AddBook(book2);
            //bls.AddBook(book1);
            //bls.AddBook(book3);
            //bls.RemoveBook(book1);

            //bls.Save(fw);

            Console.WriteLine(Book.Compare(book1, book2, new CompareByAuthor()));
            var t = bls.FindBookByTag(new FindByAuthor("123"));

            Console.WriteLine(t);

            //Console.WriteLine(book1.ToString());

            Console.ReadKey();
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Startup point of the program
        /// </summary>
        /// <param name="args">array of arguments</param>
        public static void Main(string[] args)
        {
            string          path            = AppDomain.CurrentDomain.BaseDirectory + "sdf/asdf/23!_/ / istStorage.txt";
            BookListService bookListService = new BookListService();

            try
            {
                bookListService.AddBook(new Book("121-12-1231-2", "Daniil", "Adventures", "ASV", 2015, 891, 900));
                bookListService.AddBook(new Book("12341234421-2", "Kate", "History", "ASV", 123, 192, 901));
                bookListService.AddBook(new Book("12341234421-2", "Arthur", "Sherlock Holmes", "ASV", 1242, 1009, 922));
                bookListService.AddBook(new Book("12341234421-2", "Arthur", "Treasure island", "ASV", 1242, 1009, 922));

                Console.WriteLine("-----BOOKS BEFORE REMOVE:\n");
                foreach (Book book in bookListService)
                {
                    Console.WriteLine(book);
                }

                Console.WriteLine("-----BOOKS AFTER REMOVE:\n");
                bookListService.RemoveBook(new Book("12341234421-2", "Arthur", "Treasure island", "ASV", 1242, 1009, 922));
                foreach (Book book in bookListService)
                {
                    Console.WriteLine(book);
                }

                Console.WriteLine("-----FIND BOOK:\n");
                Book bk = bookListService.FindBookByTag(book => book.CountPages == 891);
                Console.WriteLine(bk);

                Console.WriteLine("-----SORT BOOKS BY PRICE:\n");
                bookListService.Sort(new BookComparer());
                foreach (Book book in bookListService)
                {
                    Console.WriteLine(book);
                }

                Console.WriteLine("-----SAVE BOOKS TO \"BookListStorage.txt\"\n");
                var bookStorage = new BookListStorage(path);
                bookListService.SaveBooksToFile(bookStorage);

                Console.WriteLine("-----LOAD BOOKS FROM \"BookListStorage.txt\"\n");
                BookListService bookListService2 = new BookListService();
                bookListService2.LoadBooksFromFile(bookStorage);
                foreach (Book book in bookListService2)
                {
                    Console.WriteLine(book);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        } // !Main
        static void Main()
        {
            Book holyBible                     = new Book("God", "Holy Bible", int.MinValue, "Lovestory", 1372);
            Book oneNineEightFour              = new Book("George Orwell", "1984", 1949, "Dystopian", 267);
            Book weChildrenFromBahnhofZoo      = new Book("Christiane F.", "We Children from Bahnhof Zoo", 1980, "Biography", 300);
            Book harryPotterAndTheGobletOfFire = new Book("J. K. Rowling", "Harry Potter and the Goblet of Fire", 2000, "Fantasy", 636);

            BinaryStorage byn = new BinaryStorage("books.bin");
            XmlStorage    xml = new XmlStorage("books.xml");
            BinarySerializationStorage bss = new BinarySerializationStorage("books.dat");

            BookListService service = new BookListService();

            service.AddBook(holyBible);
            service.AddBook(oneNineEightFour);
            service.AddBook(weChildrenFromBahnhofZoo);
            service.AddBook(harryPotterAndTheGobletOfFire);

            service.SaveTo(byn);
            service.SaveTo(xml);
            service.SaveTo(bss);

            var bookByTag = service.FindBookByTag(t => t.Genre == "Dystopian");

            Console.WriteLine(bookByTag);
            service.RemoveBook(bookByTag);
            bookByTag = service.FindBookByTag(t => t.Genre == "Dystopian");
            Console.WriteLine(bookByTag);

            service.LoadFrom(bss);

            service.SortBooksByTag((t1, t2) => t1.PublishingYear > t2.PublishingYear ? 1 : -1);

            foreach (var book in service)
            {
                Console.WriteLine($"{book}\n\n");
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Book book0 = new Book("0-8044-2957-X", "title0", "author0",
                                  "publisher0", 2012, 10, 1.3);

            BookListService booksService = new BookListService(book0, book0);

            WriteLine("Create BookListService.");
            DisplayBooks(booksService.Books);

            booksService.AddBook(new Book("0-8044-2957-x", "title1", "author1",
                                          "publisher1", 2018, 150, 2.3));
            booksService.AddBook(new Book("0-684-84328-5", "title2", "author2",
                                          "publisher2", 2018, 150, 6.3));
            booksService.AddBook(new Book("ISBN: 0-8044-2957-X", "title3", "author3",
                                          "publisher3", 2018, 150, 5.7));
            booksService.AddBook(new Book("8090273416", "title4", "author4",
                                          "publisher4", 2018, 150, 3.2));
            booksService.AddBook(new Book(" 0-8044-2957-X", "title5", "author5",
                                          "publisher5", 2018, 150, 4.1));

            WriteLine("Add some books.");
            DisplayBooks(booksService.Books);

            booksService.SortBooks(new PriceComparator());

            WriteLine("Sort books by price.");
            DisplayBooks(booksService.Books);

            WriteLine("Save books to file \"books\".bin.");

            BookListStorage storage = new BookListStorage("books.bin");

            booksService.SaveBooks(storage);

            WriteLine("Clear list of books.");
            booksService = new BookListService();
            DisplayBooks(booksService.Books);

            booksService.LoadBooks(storage);

            WriteLine("Load books from file.");
            DisplayBooks(booksService.Books);

            var finder = new BookFinderByPriceRange(1.0, 5.0);

            WriteLine("Books with price from 1.0 to 5.0.");
            DisplayBooks(booksService.FindBookByTag(finder));

            ReadKey();
        }
Ejemplo n.º 10
0
        private static void FindBookByTag()
        {
            Console.WriteLine("Choose tag:");
            Console.WriteLine("1 - ISBN");
            Console.WriteLine("2 - Author");
            Console.WriteLine("3 - Name");
            Console.WriteLine("4 - Publisher");
            Console.WriteLine("5 - PublicationDate");
            Console.WriteLine("6 - Pages");
            Console.WriteLine("7 - Prise");
            var tag = Console.ReadLine();

            var tagType = TagType.Author;

            if (tag == "1")
            {
                tagType = TagType.Isbn;
            }
            else if (tag == "2")
            {
                tagType = TagType.Author;
            }
            else if (tag == "3")
            {
                tagType = TagType.Name;
            }
            else if (tag == "4")
            {
                tagType = TagType.Publisher;
            }
            else if (tag == "5")
            {
                tagType = TagType.PublicationDate;
            }
            else if (tag == "6")
            {
                tagType = TagType.Pages;
            }
            else if (tag == "7")
            {
                tagType = TagType.Prise;
            }
            Console.WriteLine("Input parameter:");
            var param = Console.ReadLine();

            var book = BookListService.FindBookByTag(tagType, param);

            Console.WriteLine("Found book:");
            Console.WriteLine(book.ToString());
            Console.ReadLine();
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            Book book1 = new Book("first", "F", 2000, 15);
            Book book2 = new Book("second", "B", 1996, 20);
            Book book3 = new Book("third", "D", 1986, 5);
            Book book4 = new Book("fourth", "C", 2003, 42);
            Book book5 = new Book("fifth", "W", 2013, 65);

            XmlSerializerStorage storage = new XmlSerializerStorage("letsTry.xml");
            var firstBookListService     = new BookListService();
            var secondBookListService    = new BookListService();

            firstBookListService.AddBook(book1);
            firstBookListService.AddBook(book2);
            firstBookListService.AddBook(book3);
            firstBookListService.AddBook(book4);
            firstBookListService.AddBook(book5);
            foreach (var x in firstBookListService.GetBookList())
            {
                Console.WriteLine(x);
            }
            Console.WriteLine();

            firstBookListService.SaveBooksInStorage(storage);
            foreach (var x in storage.LoadFromFile())
            {
                Console.WriteLine(x);
            }
            Console.WriteLine();

            secondBookListService.LoadBooksFromStorage(storage);
            secondBookListService.SortBooksByTag(new SortBooksByTitle());
            foreach (var x in secondBookListService.GetBookList())
            {
                Console.WriteLine(x);
            }
            Console.WriteLine();

            secondBookListService.SortBooksByTag(CompareByPrice);
            foreach (var x in secondBookListService.GetBookList())
            {
                Console.WriteLine(x);
            }
            Console.WriteLine();

            Console.WriteLine(secondBookListService.FindBookByTag(FindBySpecialTitle));

            Console.ReadLine();
        }
        static void SearchBook(BookListService bls)
        {
            Console.WriteLine("ISBN: ");
            long isbn = ReadLong();
            Book b    = bls.FindBookByTag(t => t.ISBN == isbn);

            if (b == null)
            {
                Console.WriteLine("Not found.");
            }
            else
            {
                Console.WriteLine(b.ToString());
            }
            Console.ReadKey();
        }
Ejemplo n.º 13
0
        static void Main(string[] args)
        {
            BookListService bookService = new BookListService();

            Book book1 = new Book("1491987650", "Joseph Albahari&Ben Albahari", "C# 7.0 in a Nutshell: The Definitive Reference", "O'Reilly Media", 2018, 1092, 44.99m);
            Book book2 = new Book("978-0-7356-6745-7", "Jeffrey Richter", "CLR via C#", "Microsoft Press", 2012, 826, 59.99m);

            bookService.Add(book1);
            Console.WriteLine(book1 + " was Added");
            bookService.Add(book2);
            Console.WriteLine(book2 + " was Added");

            Console.WriteLine("Adding added book, assuming Exception");
            try
            {
                bookService.Add(book1);
            }
            catch (BookAlreadyExistsException ex)
            {
                Console.WriteLine("Exception was thrown:");
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            string testISBN = "978-0-7356-6745-7";

            Console.WriteLine("Finding by ISBN: " + testISBN);
            Console.WriteLine("Found book: " + bookService.FindBookByTag(new FindByISBN(testISBN)).ToString());

            const string     storageFile = @"C:\Users\user\Desktop\EPAM\public folder\Epam-training\NET.S.2018.Brahinets.11\BinaryBookListStorage\StorageFile.txt";
            IBookListStorage storage     = new BinaryBookListStorage(storageFile);

            Console.WriteLine("Saving to the binary storage");
            bookService.SaveIntoStorage(storage);

            Console.WriteLine("Try to get books from the binary storage");
            try
            {
                bookService.GetFromStorage(storage);
            }
            catch (BookAlreadyExistsException ex)
            {
                Console.WriteLine("Books was readed from storage sucesfully");
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            BookListService bl = new BookListService("booklist.txt");

            bl.AddBook(new Book("Braun", "Inferno", 500, "Scince. Adventure"));
            bl.AddBook(new Book("Zamyatin", "We", 100, "Dystopia"));
            bl.AddBook(new Book("Tolkien", "The Lord Of The Rings", 1000, "Fantasy"));

            System.Console.WriteLine(bl.ToString());
            //bl.AddBook(new Book("Zamyatin", "Hronic", 134, "Fantasy"));
            System.Console.WriteLine("__________________");
            bl.SortBooksByTag();
            System.Console.WriteLine(bl.ToString());

            Book bok = bl.FindBookByTag(x => x.PagesAmount == 100);

            System.Console.WriteLine(bok.ToString());

            System.Console.ReadLine();
        }
        static void Main(string[] args)
        {
            var bookList = new BookListService <Book>();

            ReadFromFile("BooksInput.txt", bookList);
            Console.WriteLine("\n********** Reading from the file **********");
            Print(bookList);

            bookList.SortBooksByTag(new IncreasingSortByTitle());
            Console.WriteLine("********** Increasing sort by the title **********");
            Print(bookList);

            bookList.SortBooksByTag(new DecreasingSortByPagesNumber());
            Console.WriteLine("********** Decreasing sort by the pages number **********");
            Print(bookList);

            bookList.Remove(bookList[2]);
            Console.WriteLine("********** Removing from BookList **********");
            Print(bookList);

            var criteria           = new Book(language: "russian");
            Comparison <Book> comp = CompareByLanguage;

            Console.WriteLine("********** Finding books with the {0} language **********",
                              criteria.Language);
            var result = bookList.FindBookByTag(comp, criteria);

            foreach (var book in result)
            {
                Console.WriteLine();
                Console.WriteLine(book);
            }
            Console.WriteLine();


            BookListStorage.Save(new BinaryWriter(File.Open("BooksOutput.txt",
                                                            FileMode.OpenOrCreate, FileAccess.Write)), bookList);

            Console.ReadKey();
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Find book by some tag value
        /// </summary>
        /// <param name="books"></param>
        /// <param name="tag"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private static Book FindBookByTag(ICollection <Book> books, BookListService.Tag tag, object value)
        {
            try
            {
                Book findBook = BookListService.FindBookByTag(books, BookListService.Tag.Title, value);
                if (findBook != null)
                {
                    logger.Info($"Succesfully find book by {tag} with value \"{value}\"");
                }
                else
                {
                    logger.Info($"Book collection doesn't contain book with tag {tag} value \"{value}\"");
                }

                return(findBook);
            }
            catch (Exception ex)
            {
                logger.Warn($"Book finding exception: {ex}");
                return(null);
            }
        }
Ejemplo n.º 17
0
        private static void Main(string[] args)
        {
            Book            bookForTest    = new Book("978-0-141-34844-5", "Rebecca Donovan", "reason to breathe", "Pinguin Books", 2012, 531, 8);
            IFormatProvider formatProvider = new BookFormatter();

            Console.WriteLine(String.Format(new BookFormatter(), "{0:all}", bookForTest));
            Console.WriteLine(String.Format(new BookFormatter(), "{0:nameauthor}", bookForTest));
            Console.WriteLine(String.Format(new BookFormatter(), "{0:nameauthoryearpages}", bookForTest));
            Console.WriteLine(String.Format(new BookFormatter(), "{0:isbn}", bookForTest));
            Console.WriteLine(String.Format(new BookFormatter(), "{0:price}", bookForTest));
            Console.WriteLine(String.Format(new BookFormatter(), "{0}", bookForTest));

            //Console.WriteLine(bookForTest.ToString("2", ));
            //Console.WriteLine(bookForTest.ToString("3", ));
            //Console.WriteLine(bookForTest.ToString("4", ));
            //Console.WriteLine(bookForTest.ToString("5",  ));
            //Console.WriteLine(bookForTest.ToString("6", ));

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("______________________________________________________________________");

            IStorage <Book> storage = new BookListStorage("test.bin");
            IService        service = new BookListService(storage);

            ToConsole(service.GetAllBooks());

            service.AddBook(new Book("978-3-16-123451-10", "test", "test", "test", 2152, 1264, 1111));

            ToConsole(service.GetAllBooks());

            ToConsole(service.FindBookByTag(service.GetAllBooks(), "name", "test"));

            ToConsole(service.SortBooksByTag(service.GetAllBooks(), "author"));

            Console.ReadLine();
        }
Ejemplo n.º 18
0
        public static void Main(string[] args)
        {
            BookListService bookService = new BookListService();

            bookService.AddBook(new Book("1234567891011", "Идиот", "Достоевский Ф.М", "Азбука", "2012", 700, 9.01m));
            bookService.AddBook(new Book("555534", "Доктор Живаго", "Борис Пастернак", "Азбука", "2013", 7700, 12));
            bookService.AddBook(new Book("ASDA21", "Малое собрание сочинений", "Антон Чехов", "Неизвестное", "2010", 90, 15));
            bookService.AddBook(new Book("2423DAA", "Евгений Онегин", "Александр Пушкин", "Известное", "1995", 88, 13));
            BookListBinaryFileStorage binaryFile = new BookListBinaryFileStorage(@"e:\GitHub\Training.-Spring-2018\NET.S.2018.Belyi.11\BookLibraryApplication\BinaryBookStorage");

            bookService.SaveToStorage(binaryFile);
            bookService.AddBook(new Book("2423Ddsa", "CCC2", "AFTOR2", "QWERTY", "1995", 88, 90));
            bookService.LoadFromStorage(binaryFile);
            foreach (Book b in bookService.BookList)
            {
                Console.WriteLine(b.ToString());
            }

            Console.WriteLine("\nCортировка по цене:\n");
            bookService.SortBooksListByTag(new Comparators.PriceComparer());
            foreach (Book b in bookService.BookList)
            {
                Console.WriteLine(b.ToString("ISBN", CultureInfo.InvariantCulture));
                Console.WriteLine(b.ToString("FULL", CultureInfo.InvariantCulture));
            }

            Console.WriteLine("\nCортировка по названию:\n");
            bookService.SortBooksListByTag(new Comparators.NameComparer());
            foreach (Book b in bookService.BookList)
            {
                Console.WriteLine(b.ToString());
            }

            CustomFormatProvider custom = new CustomFormatProvider();

            Console.WriteLine("\nПоиск по имени Антон Чехов:\n");
            Console.WriteLine(bookService.FindBookByTag(new Tags.TitlePredicate("Антон Чехов")).ToString("G", custom));
        }
Ejemplo n.º 19
0
        static void Main(string[] args)
        {
            Book b1 = new Book("1", "Bell", "lol", "Lino", 1975, 612, 254);
            Book b2 = new Book("2", "Bell", "lol", "Lino", 1974, 612, 254);
            Book b3 = new Book("3", "Bell", "lol", "Lino", 1973, 612, 254);
            Book b4 = new Book("4", "Bell", "lol", "Lino", 1972, 612, 254);
            Book b5 = new Book("5", "Bell", "lol", "Lino", 1971, 612, 254);

            BookListService service = new BookListService();

            service.LoadBooks();
            service.AddBook(b1);
            service.AddBook(b2);
            service.AddBook(b3);
            service.AddBook(b4);
            service.AddBook(b5);


            foreach (Book ba in service.BookList)
            {
                Console.WriteLine(ba.ToString());
            }
            service.SortByTag("PublishYear");
            foreach (Book ba in service.BookList)
            {
                Console.WriteLine(ba.ToString());
            }

            service.RemoveBook(b2);
            foreach (Book ba in service.BookList)
            {
                Console.WriteLine(ba.ToString());
            }
            Console.WriteLine(service.FindBookByTag("PublishYear", "1973"));
            service.SaveToFile();
            Console.ReadKey();
        }
Ejemplo n.º 20
0
        static void Main(string[] args)
        {
            Book            b1      = new Book("1111111111111", "Max", "Dark1", "Minsk", 1980, 100, 100);
            Book            b2      = new Book("2222222222222", "Max", "Dark1", "Minsk", 1980, 100, 100);
            Book            b3      = new Book("3333333333333", "Max", "Dark1", "Minsk", 1980, 100, 100);
            BookListService service = new BookListService();

            service.AddBook(b2);
            service.AddBook(b1);
            service.AddBook(b3);
            Console.WriteLine(service.PrintBooks());
            Console.WriteLine("_______________________________________________________");
            service.SortBooksByTag();
            Console.WriteLine(service.PrintBooks());
            Console.ReadLine();
            BookListStorage storage = new BookListStorage(service.ListBooks);

            storage.SaveBooks("Books");
            BookListStorage storage2 = new BookListStorage(new List <Book>());

            storage2.LoadBooks("Books");
            Console.WriteLine(service.FindBookByTag("1111111111111", BookListService.Crit.isbn));
            Console.ReadLine();
        }
Ejemplo n.º 21
0
        public static void Main(string[] args)
        {
            var book1 = new Book()
            {
                Author           = "Джеффри Рихтер",
                Name             = "CLR via C#",
                NumberOfPages    = 896,
                PublishingOffice = "Питер",
                Year             = 2017,
                Price            = 67.50m,
                ISBN             = "978-5-496-00433-6"
            };

            var book2 = new Book()
            {
                Author           = "Панос Луридас",
                Name             = "Aлгоритмы для начинающих",
                NumberOfPages    = 608,
                PublishingOffice = "Эксмо",
                Year             = 2018,
                Price            = 45.50m,
                ISBN             = "978-5-04-089834-3"
            };

            var appFolder     = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            var storageFolder = Path.Combine(appFolder, "Storage");

            Directory.CreateDirectory(storageFolder);
            var path = Path.Combine(storageFolder, "BookListStorage");

            var storage = new BookStorage(path);
            var service = new BookListService(storage);

            service.AddBook(book1);
            service.AddBook(book2);

            foreach (var book in service.GetBooks())
            {
                Console.WriteLine(book.ToString());
            }

            Console.ReadKey();
            Console.WriteLine();

            service.RemoveBook(book2);

            var criterion = new NameCriterion("CLR via C#");
            var book3     = service.FindBookByTag(criterion);

            Console.WriteLine(book3.ToString());
            Console.ReadKey();
            Console.WriteLine();

            service.AddBook(book2);
            var books = service.SortBooksByTag(Comparer <Book> .Default);

            foreach (var book in books)
            {
                Console.WriteLine(book.ToString());
            }

            Console.ReadKey();
            File.Delete(path);
        }
Ejemplo n.º 22
0
        static void Main(string[] args)
        {
            ILogger logger = new Book.Logic.Logging.NLog();

            try {
                Book.Logic.Book firstBook = new Book.Logic.Book("12345", "Suzanne Collins", "The Hunger Games", "Scholastic Press",
                                                                2008, 234, 20);
                Book.Logic.Book secondBook = new Book.Logic.Book("23456", "J.K. Rowling", "Harry Potter and the Order of the Phoenix", "Scholastic Inc.",
                                                                 2004, 312, 17);
                Book.Logic.Book thirdBook = new Book.Logic.Book("34567", "Harper Lee", "To Kill a Mockingbird", "Harper Perennial Modern Classics",
                                                                2006, 245, 21);
                Book.Logic.Book fourthBook = new Book.Logic.Book("45678", "Jane Austen", "Pride and Prejudice", "Modern Library",
                                                                 2000, 634, 18);
                Book.Logic.Book fifthBook = new Book.Logic.Book("56789", "Stephenie Meyer", "Twilight", "Little, Brown and Company ",
                                                                2006, 134, 25);
                Book.Logic.Book sixthBook = new Book.Logic.Book("56789", "Stephenie Meyer", "Twilight", "Little, Brown and Company ",
                                                                2006, 134, 25);
                Book.Logic.Book seventhBook = null;


                IFormatProvider fp = new BookFormatProvider();
                Console.WriteLine(string.Format(fp, "{0:AT}", firstBook));

                Console.WriteLine(fifthBook);

                Console.WriteLine(fifthBook.Equals(sixthBook));    //true
                Console.WriteLine(firstBook.Equals(secondBook));   //false

                Console.WriteLine(fifthBook.CompareTo(thirdBook)); //1
                Console.WriteLine(sixthBook.CompareTo(fifthBook)); //0

                BookListService service = new BookListService();

                service.AddBook(firstBook);
                service.AddBook(secondBook);
                service.AddBook(thirdBook);
                service.RemoveBook(thirdBook);
                service.AddBook(thirdBook);
                service.AddBook(fourthBook);
                service.AddBook(fifthBook);
                service.AddBook(seventhBook);


                Console.WriteLine("\r\n");
                Console.WriteLine("------List of books.------");
                Console.WriteLine(service);

                IBookStorage binaryStorage = new BookBinaryStorage(@"/Users/vinnichek/Projects/Task/ConsoleAppForBook/Books.txt");
                //service.SaveToStorage(binaryStorage);
                //service.LoadFromStorage(binaryStorage);

                Console.WriteLine(service.FindBookByTag(new FindBookByAuthor("Suzanne Collins")));
                Console.WriteLine(service.FindBookByTag(new FindBookByPrice(25)));

                Console.WriteLine("\r\n");
                Console.WriteLine("------Sorting by authors.------");
                service.SortBookByTag(new CompareByAuthor());
                Console.WriteLine(service);

                Console.WriteLine("\r\n");
                Console.WriteLine("------Sorting by price.------");
                service.SortBookByTag(new CompareByPrice());
                Console.WriteLine(service);
            }
            catch (ArgumentNullException e)
            {
                logger.ErrorWriteToLog(DateTime.Now, e.Message, e.StackTrace);
            }
            catch (ArgumentException e)
            {
                logger.ErrorWriteToLog(DateTime.Now, e.Message, e.StackTrace);
            }
            catch (Exception e)
            {
                logger.ErrorWriteToLog(DateTime.Now, "Unhandled exception:", e.StackTrace);
            }
            Console.ReadKey();
        }
Ejemplo n.º 23
0
        static void Main(string[] args)
        {
            ILogger          logger  = LogManager.GetCurrentClassLogger();
            IBookListService service = new BookListService("file1.dat", logger);

            while (true)
            {
                try
                {
                    int number = 0;
                    Console.Write("(1)Add Book, (2) Remove Book, (3)Show Books, (4)Find Book, (5)Sort by tag:    ");
                    number = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine();
                    if (number == 1)
                    {
                        service.AddBook();
                    }
                    if (number == 2)
                    {
                        service.RemoveBook();
                    }
                    if (number == 3)
                    {
                        service.ShowList();
                    }

                    if (number == 4)
                    {
                        Console.Write("(1)Find by Id, (2) Find by Name and Author name," +
                                      " (3) Find by  Name and Author name and year of publish:   ");
                        number = Convert.ToInt32(Console.ReadLine());
                        if (number == 1)
                        {
                            Console.Write("Enter Id: ");
                            int id = Convert.ToInt32(Console.ReadLine());
                            service.FindBookByTag(id);
                        }
                        if (number == 2)
                        {
                            Console.Write("Enter Name: ");
                            string name = Console.ReadLine();
                            Console.Write("Enter Author name: ");
                            string author = Console.ReadLine();
                            service.FindBookByTag(name, author);
                        }
                        if (number == 3)
                        {
                            Console.Write("Enter Name: ");
                            string name = Console.ReadLine();
                            Console.Write("Enter Author name: ");
                            string author = Console.ReadLine();
                            Console.Write("Enter year of publish: ");
                            int year = Convert.ToInt32(Console.ReadLine());
                            service.FindBookByTag(name, author, year);
                        }
                    }
                    if (number == 5)
                    {
                        service.SortByTag();
                    }
                }
                catch (Exception e)
                {
                    logger.Error(e.Message);
                    Console.WriteLine(e.Message);
                }
            }
        }
        static void Main(string[] args)
        {
            //Create some books
            var book1 = new Book("Dune", "Frank Herbert", "978-8-37-150211-8", "Chilton Books", 1965, 412, 12.67);
            var book2 = new Book("Witcher. The Last Wish", "Andrzej Sapkowski", "978-7-15-257954-1", "Gollancz", 2007, 514, 15.44);
            var book3 = new Book("Roadside Picnic", "Arkady and Boris Strugatsky", "978-0-02-615170-2", "Macmillan", 1972, 722, 11.78);

            //Add books to List
            List <Book> books = new List <Book> {
                book1, book2
            };

            Console.WriteLine("\nNew list of books.\n");
            foreach (var book in books)
            {
                Console.WriteLine(book);
            }

            //Creating service working with book list
            var service = new BookListService(books);

            Console.WriteLine("\nNew service was created.\n");

            //Add third book to List by service
            service.AddBook(book3);

            Console.WriteLine("\nAdded new book by service.\n");
            foreach (var book in service.GetBooks())
            {
                Console.WriteLine(book);
            }

            //Create a copy of existing book
            var book4 = new Book("Roadside Picnic", "Arkady and Boris Strugatsky", "978-0-02-615170-2", "Macmillan", 1972, 722, 11.78);

            //Trying to add existing book to list
            try
            {
                Console.WriteLine("\nTrying to add existing book\n");
                service.AddBook(book4);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            //Trying to add null book to list
            Book book5 = null;

            try
            {
                Console.WriteLine("\nTrying to add null book\n");
                service.AddBook(book5);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            //Trying to remove existing book from list
            service.RemoveBook(book1);
            Console.WriteLine("\nRemove book by service.\n");
            foreach (var book in service.GetBooks())
            {
                Console.WriteLine(book);
            }

            //Trying to remove existing book from list twice
            try
            {
                Console.WriteLine("\nTrying remove existing book from list twice\n");
                service.RemoveBook(book1);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            //Added book1 again by service
            service.AddBook(book1);

            //Existing list of books
            Console.WriteLine("\nExisting list of books.\n");
            foreach (var book in service.GetBooks())
            {
                Console.WriteLine(book);
            }

            Console.WriteLine("\nFind a book with author Andrzej Sapkowski:");
            Console.WriteLine(service.FindBookByTag(new AuthorPredicate()));

            Console.WriteLine("\nFind a book with price less than 15:");
            Console.WriteLine(service.FindBookByTag(new PricePredicate()));

            service.SortBooksByTag(new PublishYearComparer());
            Console.WriteLine("\nBooks ordered by date sort:");
            foreach (var book in service.GetBooks())
            {
                Console.WriteLine(book);
            }

            //filepath is at app.config
            string storageFilepath = ConfigurationSettings.AppSettings["filepath"];
            var    storage         = new BookListStorage(storageFilepath);

            storage.Save(service.GetBooks());

            //Creating other service to load books from binary file
            List <Book> books2   = new List <Book>();
            var         service2 = new BookListService(books2);

            service2.LoadBooksFromStorage(storage);
            Console.WriteLine("\nBooks loaded by other service from binary storage:");
            foreach (var book in service2.GetBooks())
            {
                Console.WriteLine(book);
            }


            Console.ReadLine();
        }
Ejemplo n.º 25
0
        static void Main(string[] args)
        {
            ILogger logger = new NLogAdapter();

            //Creating books
            Book book1 = new Book("Война и мир", "Лев Толстой", "роман-эпопея", 1408, "русский", "Россия");
            Book book2 = new Book("Преступление и наказание", "Федор Достоевский", "роман", 608, "русский", "Россия");
            Book book3 = new Book("Собачье сердце", "Михаил Булгаков", "повесть", 384, "русский", "Россия");
            Book book4 = new Book("Тихий Дон", "Михаил Шолохов", "роман-эпопея", 1505, "русский", "Россия");
            Book book5 = new Book("Обломов", "Иван Гончаров", "роман", 640, "русский", "Россия");
            Book book6 = new Book("Идиот", "Федор Достоевский", "роман", 640, "русский", "Россия");
            Book book7 = new Book("Тихий дон", "Михаил Шолохов", "роман-эпопея", 1230, "английский", "Россия");

            //Creating blank BookListServices
            BookListService bookListService        = new BookListService(logger);
            BookListService anotherBookListService = new BookListService(logger);
            BookListService bookListServiceFromBS  = new BookListService(logger);
            BookListService bookListServiceFromXML = new BookListService(logger);

            //Filling in first BookListService
            bookListService.AddBook(book1);
            bookListService.AddBook(book2);
            bookListService.AddBook(book3);
            bookListService.AddBook(book4);
            bookListService.AddBook(book5);
            bookListService.AddBook(book6);
            bookListService.AddBook(book7);


            //Displaying of first element of the BookListService and removing of this element
            Console.WriteLine(bookListService[1].ToString());
            bookListService.RemoveBook(bookListService[1]);

            Console.WriteLine("****************Work with BookListSerializedStorage****************");
            //Creating BookListSerializedStorage with specified name
            BookListSerializedStorage bookListSerializedStorage = new BookListSerializedStorage("LibraryBS.dat");

            //Saving the BookListService to the BookListSerializedStorage
            bookListService.Save(bookListSerializedStorage);
            //Loading books from BookListSerializedStorage to another BookListService and displaying the books
            bookListServiceFromBS.Load(bookListSerializedStorage);
            foreach (Book temp in bookListServiceFromBS.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }

            Console.WriteLine("****************Work with BookListXMLStorage****************");
            // Creating BookListXMLStorage with specified name
            BookListXMLStorage bookListXMLStorage = new BookListXMLStorage("LibraryXML.xml");

            //Saving the BookListService to the BookListXMLStorage
            bookListService.Save(bookListXMLStorage);
            //Loading books from BookListXMLStorage to another BookListService and displaying the books
            bookListServiceFromXML.Load(bookListXMLStorage);
            foreach (Book temp in bookListServiceFromXML.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }

            Console.WriteLine("****************Work with BookListStorage****************");
            //Creating BookListStorage with specified name
            BookListStorage bookListStorage = new BookListStorage("Library.dat");

            //Saving the BookListService to the BookListStorage
            bookListService.Save(bookListStorage);
            //Loading books from BookListStorage to another BookListService and displaying the books
            anotherBookListService.Load(bookListStorage);
            foreach (Book temp in anotherBookListService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }


            //Sorting the books in order specified in Comparer object(by author)
            Console.WriteLine("****************SortedByAuthorList****************");
            IComparer <Book> authorComparer = new BookEqualityByAuthor();

            anotherBookListService.SortBooksByTag(authorComparer);
            foreach (Book temp in anotherBookListService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }



            //Sorting the books in order specified in Comparer object(by number of pages)
            Console.WriteLine("****************SortedByNumberOfPages****************");
            IComparer <Book> numberOfPagesComparer = new BookEqualityByNumberOfPages();

            anotherBookListService.SortBooksByTag(numberOfPagesComparer);
            foreach (Book temp in anotherBookListService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }

            //Extracting books with the tag specified in TagContainer(title="дон")
            Console.WriteLine("****************BooksThatContainGivenTitle****************");
            ITagContainer tagContainer = new BookListContainTitle("дон");

            BookListService tempService = anotherBookListService.FindBookByTag(tagContainer);

            foreach (var temp in tempService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }

            //Extracting books with the tag specified in TagContainer(language="рус")
            Console.WriteLine("****************BooksThatContainGivenLanguage****************");
            tagContainer = new BookListContainLanguage("рус");

            tempService = anotherBookListService.FindBookByTag(tagContainer);

            foreach (var temp in tempService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }


            //Extracting books with the tag specified in TagContainer(language="рус")
            Console.WriteLine("****************BooksThatContainGivenLanguage****************");

            tempService = anotherBookListService.FindBookByTag(book => book.Language.Contains("рус"));


            foreach (var temp in tempService.GetBooks())
            {
                Console.WriteLine(temp.ToString() + "\n");
            }

            Console.ReadLine();
        }
Ejemplo n.º 26
0
        static void Main(string[] args)
        {
            BookListService service = new BookListService(new BookFileRepository("TestBooksFile"), logger);

            if (!File.Exists("TestBooksFile"))
            {
                service.AddBooks(new List <Book> {
                    new Book("J. K. Rowling", "Harry Potter and the Prisoner of Azkaban", 528, 18.4),
                    new Book("Stephen King", "The Green Mile", 384, 10.6),
                    new Book("Борис Васильев", "А зори здесь тихие...", 432, 10.2),
                    new Book("Антуан де Сент-Экзюпери", "Маленький принц", 104, 16.7),
                });
            }

            IEnumerable <Book> sort = service.SortBooksByTag(book => book.Price);

            Console.WriteLine("Sort by price: ");
            foreach (var book in sort)
            {
                Console.WriteLine($"{book}");
            }

            sort = service.SortBooksByTag(book => book.NumberPages);
            Console.WriteLine("Sort by number of pages: ");
            foreach (var book in sort)
            {
                Console.WriteLine($"{book}");
            }

            IEnumerable <Book> find = service.FindBookByTag(book => book.Author == "Антуан де Сент-Экзюпери");

            Console.WriteLine("Find by author Антуан де Сент-Экзюпери");
            foreach (var book in find)
            {
                Console.WriteLine($"{book} ");
            }

            Console.WriteLine("Test remove (Harry Potter) and add (Godfather):");
            service.AddBook(new Book("Mario Puzo", "Godfather", 288, 25.6));
            service.RemoveBook(new Book("J. K. Rowling", "Harry Potter and the Prisoner of Azkaban", 528, 18.4));

            foreach (var book in service.Books)
            {
                Console.WriteLine($"{book}");
            }

            Console.WriteLine("Test exceptions:");
            try
            {
                service.AddBook(null);
            }
            catch (ArgumentNullException ex)
            {
                Console.WriteLine(ex.Message);
            }
            try
            {
                service.RemoveBook(new Book("Margaret Mitchell", "Gone with the Wind", 1280, 17));
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadKey();
        }
Ejemplo n.º 27
0
        static void Main(string[] args)
        {
            try
            {
                var storage = new BinaryStorage();

                var service = new BookListService(logger);

                service.ReadList(storage);

                var book1 = new Book("978-0-7356-6745-7", "Jeffrey Richter",
                                     "CLR via C#", "Microsoft Press", 2012, 826, new decimal(59.99));

                //service.AddBook(book1);

                var book2 = new Book("978-0-7356-6745-8", "Astakhov Mihail",
                                     "Axperimental study of the strength",
                                     "Bauman MSTU", 2006, 593, new decimal(10.30));

                //service.AddBook(book2);

                var book3 = new Book("978-0-7356-6745-1", "Timoshenko Sergey",
                                     "Bibration problems in engineering",
                                     "Mashinostroenie Publ", 1985, 472, new decimal(30.45));

                //service.AddBook(book3);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                service.RemoveBook(book3);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                var resultDuneFind = service.FindBookByTag(new SearchByIsbn(book2.ISBN));

                Console.WriteLine($"Expected true: {resultDuneFind.Equals(book2)}");

                var resultNotFind = service.FindBookByTag(new SearchByIsbn("978 - 0 - 7356 - 3745 - 7"));

                Console.WriteLine($"Expected null: {resultNotFind == null}");

                var predicateSort = new CompareByName();

                service.AddBook(book3);

                service.SortBooksByTag(predicateSort);

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString());
                }

                Console.WriteLine();

                storage.SaveList(service.ListBooks);

                var cultereInfo = System.Globalization.CultureInfo.GetCultureInfo("en-IN");

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("O", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("P", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("Q", cultereInfo));
                }

                Console.WriteLine();

                foreach (Book item in service.ListBooks)
                {
                    Console.WriteLine(item.ToString("G", cultereInfo));
                }

                Console.WriteLine(book1.GetHashCode() == book1.GetHashCode());
                Console.WriteLine(book1.GetHashCode() == book2.GetHashCode());
            }
            catch (FormatException error)
            {
                logger.WriteInfo("Format exseption");
                logger.WriteError(error.StackTrace);
            }
            catch (ArgumentNullException error)
            {
                logger.WriteInfo("Argument null exception");
                logger.WriteError(error.StackTrace);
            }
            catch (BookFormatException error)
            {
                logger.WriteInfo("Book format exception");
                logger.WriteError(error.StackTrace);
            }
            catch (Exception error)
            {
                logger.WriteInfo("Unhandled exception:");
                logger.WriteError(error.StackTrace);
            }
        }
Ejemplo n.º 28
0
        private static void Main(string[] args)
        {
            Console.WriteLine("=== Test Equals ===");
            Book romAndJul     = new Book("Romeo and Juliet", "William Shakespeare", "tradegy", 171);
            Book romAndJulCopy = new Book("Romeo and Juliet", "William Shakespeare", "tradegy", 171);

            Console.WriteLine(romAndJul);
            Console.WriteLine(romAndJulCopy);
            Console.WriteLine("Are equals? {0}", romAndJul.Equals(romAndJulCopy) ? "Yes" : "No");

            Console.WriteLine();

            Book almostRomAndJul = new Book("Almost Romeo and Juliet", "William Shakespeare", "tradegy", 170);

            Console.WriteLine(romAndJul);
            Console.WriteLine(almostRomAndJul);
            Console.WriteLine("Are equals? {0}", romAndJul.Equals(almostRomAndJul) ? "Yes" : "No");
            Console.WriteLine("==== end Test Equals ====");

            Console.WriteLine();
            Console.WriteLine("=== Test GetHashCode ===");

            Console.WriteLine("Different books:");
            Console.WriteLine($"{romAndJul.GetHashCode()} and {almostRomAndJul.GetHashCode()}");
            Console.WriteLine("The same books:");
            Console.WriteLine($"{romAndJul.GetHashCode()} and {romAndJulCopy.GetHashCode()}");
            Console.WriteLine("=== end Test GetHashCode ===");

            Console.WriteLine();
            Console.WriteLine("===== Test BookListStorage =====");

            Book myBook    = new Book("Death Note", "Andrei Khotko", "Detective", 100);
            Book parasyte  = new Book("Parasyte", "Hey Layla", "Horror", 1021);
            Book elfenLied = new Book("Elfen Lied", "Hayavo Miodzaki", "Comedy", 94);

            BookListService service = new BookListService();


            try
            {
                service.AddBook(myBook);
                service.AddBook(parasyte);
                service.AddBook(elfenLied);
                service.AddBook(almostRomAndJul);
                service.AddBook(romAndJul);
                service.AddBook(romAndJulCopy); // Exception here
            }
            catch (DuplicateBookException ex)
            {
                Console.WriteLine($"Error : {ex.Message}"); // temporary substitution of logging, SO SORRY FOR THAT :(
                //Do logging
            }

            Book result = service.FindBookByTag(b => b.Name == "Elfen Lied");

            Console.WriteLine($"Result of FindBookByTag Name = ElfnLied : {result}");

            PrintService(service, "Before sort");

            service.SortBooksByTag(new NameComparer());

            PrintService(service, "After sort");
            Console.WriteLine("=== end Test BookListStorage ===");

            string fileName = "storage.bin";

            Console.WriteLine($"Saving storage to file {fileName}...");

            IBookListStorage storage = new BinaryFileStorage(fileName);

            service.SaveStorage(storage);

            var newService = new BookListService();;

            newService.LoadStorage(storage);

            newService.RemoveBook(myBook);

            PrintService(newService, "New Service");
            Console.ReadLine();
        }
Ejemplo n.º 29
0
        static void Main(string[] args)
        {
            List <Book> listBooks = new List <Book>();

            listBooks.Add(new Book("Pygmi", "Palanik", 1996, 200, "Doubleday"));
            listBooks.Add(new Book("It", "King", 1990, 400, "Viking Press"));
            listBooks.Add(new Book("1984", "Orwell", 1999, 200, "Harvill Secker"));
            listBooks.Add(new Book("Green Mile", "King", 1999, 500, "Viking Press"));

            Task1.ILogger   logger = new NlogAdapter(LogManager.GetCurrentClassLogger());
            BookListService bls    = new BookListService(listBooks, logger);

            Console.WriteLine("*****SAVE TO BINARY FILE*****");
            IRepository repos = new AdapterTxt();

            bls.Upload(repos, Environment.CurrentDirectory + "BookListStorage.txt");

            Console.WriteLine("*****SORT BY NAME*****");
            bls.SortBooksByTag(new SortByNameOfBook());
            foreach (var item in listBooks)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("*****FIND BY PRICE*****");
            List <Book> f = bls.FindBookByTag(new FindBookByPrice(200));

            foreach (var item in f)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("*****OPEN FROM BINARY FILE*****");
            List <Book> listBooksDL = bls.Download(repos, Environment.CurrentDirectory + "BookListStorage.txt");

            foreach (var item in listBooksDL)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("*****SAVE TO XML FILE*****");
            repos = new AdapterXML();
            bls.Upload(repos, Environment.CurrentDirectory + "BookListStorage.xml");

            Console.WriteLine("*****OPEN FROM XML FILE*****");
            List <Book> listBooksXml = bls.Download(repos, Environment.CurrentDirectory + "BookListStorage.xml");

            foreach (var item in listBooksXml)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("*****SERIALIZE BOOKS TO FILE*****");
            repos = new AdapterSerializer();
            bls.Upload(repos, Environment.CurrentDirectory + "BookListStorage.bin");

            Console.WriteLine("*****OPEN DESERIALIZE BOOKS FROM FILE*****");
            List <Book> listBooksDS = bls.Download(repos, Environment.CurrentDirectory + "BookListStorage.bin");

            foreach (var item in listBooksDS)
            {
                Console.WriteLine(item.ToString());
            }
        }
Ejemplo n.º 30
0
        static void Main()
        {
            var service = new BookListService();

            Console.WriteLine("--------------------Добавление---------------");
            Console.WriteLine();

            var book1 = new Book("Паттерны проектирования на платформе .NET",
                                 "Сергей Тепляков", "Питер", 2015, "Русский");
            var book2 = new Book("Оптимизация приложений на платформе .NET",
                                 "Саша Годштейн", "ДМК Пресс", 2014, "Русский");
            var book3 = new Book("C# in depth", "Джон Скит", year: 2014,
                                 language: "Русский");
            var book4 = new Book("C# 5.0. Справочник. Полное описание языка",
                                 "Джозеф албахари", year: 2014, language: "Русский");
            var book5 = new Book("CLR via C#", "Джеффри Рихтер", language: "Русский");

            Book[] books = { book1, book2, book3, book4, book5 };

            foreach (var variable in books)
            {
                try
                {
                    service.AddBook(variable);
                }
                catch (ArgumentException exc)
                {
                    Logger.Info("Adding element. Element exists in the collection:");
                    Logger.Error(exc.StackTrace);
                }
                catch (Exception exc)
                {
                    Logger.Info("Unhandled adding exception:");
                    Logger.Error(exc.StackTrace);
                }
            }

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.WriteLine("--------------------Удаление-----------------");
            Console.WriteLine();

            var defBook = new Book("Unknown", "Unknown");

            Book[] removingBooks = { book5, defBook };

            foreach (var variable in removingBooks)
            {
                try
                {
                    service.RemoveBook(variable);
                }
                catch (ArgumentException exc)
                {
                    Logger.Info("Removing element. The element are not in the collection:");
                    Logger.Error(exc.Message);
                    Logger.Error(exc.Data);
                    Logger.Error(exc.Source);
                    Logger.Error(exc.TargetSite);
                    Logger.Error(exc.StackTrace);
                }
                catch (Exception exc)
                {
                    Logger.Info("Unhandled removing exception:");
                    Logger.Error(exc.StackTrace);
                }
            }

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.WriteLine("------------Сортировка по автору-------------");
            Console.WriteLine();

            service.SortBooksByTag(new CompareByAuthor());

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.WriteLine("--------------------Поиск--------------------");
            Console.WriteLine();

            var book = service.FindBookByTag(x => x.Author == "Джон Скит");

            Console.WriteLine(book);

            Console.WriteLine("--------------Сохранение/Загрузка------------");
            Console.WriteLine();

            service.SaveBooks(new BookListStorage("BookStorage"));
            service.LoadBooks(new BookListStorage("BookStorage"));

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.WriteLine("------------------Сериализация---------------");
            Console.WriteLine();

            service.SaveBooks(new BookListStorageSerialization("BookStorageSerialization"));
            service.LoadBooks(new BookListStorageSerialization("BookStorageSerialization"));

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.WriteLine("------------------Xml storage----------------");
            Console.WriteLine();

            service.SaveBooks(new BookListStorageXml("BookStorageXml"));
            //////////////////////////////////////////////////service.LoadBooks(new BookListStorageXML("BookStorageXml"));

            foreach (var variable in service)
            {
                Console.WriteLine(variable);
            }

            Console.ReadKey();
        }