Esempio n. 1
0
        public static void Main()
        {
            _logger = LoggerCreater.GetLogger(nameof(Program));

            try
            {
                IBookStorage bookRepository = new BookBinaryStorage(FilePath);
                IBookService bookService    = new BookListService(bookRepository);

                Console.WriteLine("AddTest");
                Console.WriteLine(new string('-', 80));
                AddTest(bookService);

                Console.WriteLine("FindTest");
                FindTest(bookService);

                Console.WriteLine("DeleteTest");
                DeleteTest(bookService);

                Console.WriteLine("SortTest");
                SortTest(bookService);

                Console.WriteLine("FormatTest");
                FormatTest(bookService);

                Console.WriteLine("FormatExtensionTest");
                FormatExtensionTest(bookService);

                var books = bookService.GetBooks();
                foreach (var book in books)
                {
                    bookService.RemoveBook(book);
                }

                bookService.AddBook(new Book("ISBN7", "Author1", "Title - 5", "PublishHouse 1", "2020", 140, 5m));
            }
            catch (Exception e)
            {
                _logger.Error("An error has occurred. See details", e);
            }

            Console.ReadLine();
        }
        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();
        }