コード例 #1
0
        public static void Main(string[] args)
        {
            var bookStorage = new BookListStorage(@"H:\BookStorage.txt");
            var bookService = new BookListService(bookStorage);
            var newBook     = new Book()
            {
                Author = "Author", Cost = 20, ISBN = "346632436562", Name = "Book name", PagesNumber = 246, PublicationYear = 2000, Publisher = "Publisher name"
            };

            Console.WriteLine(bookService.AddBook(newBook));
            var booksList = bookService.GetAllBooks();

            newBook = new Book()
            {
                Author = "Author2", Cost = 20, ISBN = "123632436562", Name = "Book name 2", PagesNumber = 246, PublicationYear = 2000, Publisher = "Publisher name 2"
            };
            Console.WriteLine(bookService.AddBook(newBook));
            booksList = bookService.SortBooksByTag(SearchTags.ISBN);
            var searchingResult = bookService.FindBooksByTag(SearchTags.ISBN, "123632436562");

            var bankAccountStorage = new BankAccountsRepository(@"H:\BankAccountStorage.txt");
            var bankAccountService = new BankAccountService(bankAccountStorage);
            var newBankAccount     = new BankAccount(1, "FirstName", "LastName", 20, 0, false, BankAccountTypes.Standart, 10);

            Console.WriteLine(bankAccountService.AddAccount(newBankAccount));
            newBankAccount = new BankAccount(2, "FirstName2", "LastName2", 22, 3, false, BankAccountTypes.Gold, 20);
            Console.WriteLine(bankAccountService.AddAccount(newBankAccount));
            var bankAccountsList = bankAccountService.GetAllBankAccounts();

            bankAccountService.TopUpInAnAccount(30, bankAccountsList.ToList()[0].AccountId);
            bankAccountService.DebitTheAccount(10, bankAccountsList.ToList()[1].AccountId);

            Console.ReadKey();
        }
コード例 #2
0
        public ActionResult Submit(string Author, string ISBN, string Title, uint PageCount, decimal Price,
                                   int PublicationYear, string PublishingOffice)
        {
            var book = new Book()
            {
                Author           = Author,
                Title            = Title,
                ISBN             = ISBN,
                PublishingOffice = PublishingOffice,
                PublicationYear  = PublicationYear,
                Price            = Price,
                PageCount        = PageCount
            };

            var bookListStorage = new BookListStorage();
            var bookListService = new BookListService(bookListStorage);

            bookListService.Add(new List <Book>()
            {
                book
            });

            bookListStorage.Save(bookListService.Books);

            ViewBag.Response = "Book added to Book List!";
            return(View("AddBook"));
        }
コード例 #3
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();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            try
            {
                BookListStorage bookStorage = new BookListStorage("NewStorage.bin");
                BookListService bookService = new BookListService(bookStorage);

                bookService.AddBookToShop(new Book("978-3-16-123451-0", "Ivanov", "one", "Minsk", 2000, 1000, 100));
                bookService.AddBookToShop(new Book("978-3-16-123452-1", "Petrov", "two", "Gomel", 2001, 2000, 200));
                bookService.AddBookToShop(new Book("978-3-16-123453-2", "Glebov", "three", "Brest", 2002, 3000, 300));
                bookService.AddBookToShop(new Book("978-3-16-123454-3", "Arkhipov", "four", "Vitebsk", 2003, 4000, 400));

                var books = new List <Book>();
                books.Add(bookService.FindBook(new FindBookByName("one", bookService.GetAllBooks())));
                PrintBook(books);

                bookService.Sort(null);
                PrintBook(bookService.GetAllBooks());

                Console.WriteLine(books[0].ToString("2", CultureInfo.CurrentCulture));
                bookService.Save();
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            Book book = new Book("1111", "Title1", "Author1", "Publisher1", 20, 1975, 15f);

            var storage = new BookListStorage("ListBook.bin");
            var service = new BookListService(storage);

            service.AddBook(book);
            service.AddBook(new Book("3333", "Title2", "Author2", "Publisher2", 200, 1975, 18f));
            service.AddBook(new Book("5555", "Title3", "Author2", "Publisher2", 254, 1975, 18f));
            service.AddBook(new Book("4444", "Title5", "Author2", "Publisher2", 2, 1975, 18f));
            service.AddBook(new Book("55554", "Title2", "Author2", "Publisher2", 299, 1975, 18f));
            service.AddBook(new Book("34534", "Title6", "Author2", "Publisher2", 2000, 1975, 18f));
            service.AddBook(new Book("3333", "Title2", "Author6", "Publisher45", 200, 1975, 14f));
            service.AddBook(new Book("5555", "Title35", "Author2", "Publisher2", 254, 1975, 18f));
            service.AddBook(new Book("4444", "Title51", "Author34", "Publisher2", 2, 1975, 187f));
            service.AddBook(new Book("55554", "Title2", "Author65", "Publisher453", 299, 1975, 148f));
            service.AddBook(new Book("34534", "Title6", "Author211", "Publisher2", 2000, 1975, 78f));


            Filter filterPage = new Filter(pages: 2);

            Console.WriteLine("Find book Pages = 2 : \n\r" + service.FindByTag(filterPage));

            Filter filterTitle = new Filter(title: "Title3");

            Console.WriteLine("Find book Title = Title3 : \n\r" + service.FindByTag(filterTitle));


            Console.WriteLine("Unsort : ");
            var serviceList = service.GetAll();

            service.Save();
            service.Load();
            foreach (var item in serviceList)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("Sort by ISNB:");
            service.Sort(new ByISBN());

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

            Console.WriteLine("Sort by price:");
            service.Sort(new ByPrice());

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



            Console.ReadKey();
        }
コード例 #6
0
ファイル: BookTest.cs プロジェクト: Yananisan/Epam
        public void AuthorTitle()
        {
            string          expected    = "Tolkien, LOTR";
            BookListStorage bookStorage = new BookListStorage(" ");
            BookListService actual      = new BookListService(bookStorage);

            Assert.AreEqual(expected, b1.AuthorTitle());
        }
コード例 #7
0
ファイル: BookTest.cs プロジェクト: Yananisan/Epam
        public void Test_Book_Print_AuthorNamePrice()
        {
            string          expected    = "Tolkien, LOTR, Russia, 1954";
            BookListStorage bookStorage = new BookListStorage(" ");
            BookListService actual      = new BookListService(bookStorage);

            Assert.AreEqual(expected, b1.AuthorTitlePubYear());
        }
コード例 #8
0
ファイル: BookTest.cs プロジェクト: Yananisan/Epam
        public void Print()
        {
            string          expected    = "ISBN: 123456789, AuthorName: Tolkien, Title: LOTR, Publisher: Russia, Year: 1954, Number of pages: 2000, Price: 100";
            BookListStorage bookStorage = new BookListStorage(" ");
            BookListService actual      = new BookListService(bookStorage);

            actual.AddBook(b1);
            Assert.AreEqual(expected, actual.Print());
        }
コード例 #9
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
コード例 #10
0
        static void Main()
        {
            var book    = new Book("Name", "Author", 2, "Genre", "Publisher");
            var logger  = new Logger("logger.txt");
            var storage = new BookListStorage("storage", logger);
            var service = new BookListService(logger);

            service.AddBook(book);
            service.UploadBookList(storage);
            service.RemoveBook(book);
            var books = service.DownloadBookList(storage);
        }
コード例 #11
0
        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();
        }
コード例 #12
0
        static void Main(string[] args)
        {
            var bookListStorage = BookListStorage.GetInstance();
            var books           = bookListStorage.LoadDataFromFile();
            var bookListService = new BookListService(books);

            foreach (var book in bookListService.SortBooksByPrice())
            {
                Console.WriteLine(book);
                Console.WriteLine("--------------------------------");
            }

            Console.ReadKey();
        }
コード例 #13
0
ファイル: BookTest.cs プロジェクト: Yananisan/Epam
        public void Add()
        {
            BookListStorage bookStorage = new BookListStorage(" ");
            List <Book>     expected    = new List <Book>();

            expected.Add(b1);
            expected.Add(b2);
            expected.Add(b3);
            BookListService actual = new BookListService(bookStorage);

            actual.AddBook(b1);
            actual.AddBook(b2);
            actual.AddBook(b3);
            Assert.AreEqual(expected, actual.GetList);
        }
コード例 #14
0
        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();
        }
コード例 #15
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();
        }
コード例 #16
0
 /// <summary>
 ///     Constructor takes books data storage and logger
 /// </summary>
 /// <param name="storage"></param>
 /// <param name="logger"></param>
 public BookListService(BookListStorage storage, LogService logger)
 {
     _bookListStorage = storage;
     _books           = _bookListStorage.LoadBooks();
     _logger          = logger;
 }
コード例 #17
0
        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();
        }
コード例 #18
0
        private static void Main()
        {
            #region Configure NLog Targets for output programmatically

            var config = new NLog.Config.LoggingConfiguration();

            var logfile = new NLog.Targets.FileTarget()
            {
                FileName = "file.txt", Name = "logfile"
            };
            var logconsole = new NLog.Targets.ConsoleTarget()
            {
                Name = "logconsole"
            };

            config.LoggingRules.Add(new NLog.Config.LoggingRule("*", LogLevel.Trace, logconsole));
            config.LoggingRules.Add(new NLog.Config.LoggingRule("*", LogLevel.Debug, logfile));

            NLog.LogManager.Configuration = config;

            var nLogger = new NLogger();

            #endregion

            #region Creation book instances and adding them to SortedSet

            var books = new SortedSet <Book>
            {
                new Book(
                    "978-0-672-33690-4",
                    "Bart De Smet",
                    "C# 5.0 Unleashed",
                    "SAMS Publishing",
                    2013,
                    1671,
                    51.29m),
                new Book(
                    "978-0-735-68320-4",
                    "Gary McLean Hall",
                    "Adaptive Code via C#",
                    "Microsoft Press",
                    2014,
                    403,
                    35.01m),
                new Book(
                    "978-1-617-29134-0",
                    "Jon Skeet",
                    "C# in Depth, 3rd Edition",
                    "Manning",
                    2015,
                    605,
                    39.73m),
                new Book(
                    "978-1-491-98765-0",
                    "Joseph Albahari & Веn Albahari",
                    "C# 7.0 in a Nutshell: The Definitive Reference",
                    "O'Reilly",
                    2018,
                    1140,
                    60.53m)
            };

            Console.WriteLine($"*** SortedSet ordered alphabetically by title ***\n");

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

            #endregion

            #region Book class testing

            Console.WriteLine($"\n*** Book testing ***\n");

            Console.WriteLine($"\n--- Equals testing ---\n");

            var bookAlbahari2 = new Book("978-1-491-98765-0",
                                         "Joseph Albahari & Веn Albahari",
                                         "C# 7.0 in a Nutshell: The Definitive Reference",
                                         "O'Reilly",
                                         2018,
                                         1140,
                                         60.53m);

            foreach (var book in books)
            {
                if (book.Equals(bookAlbahari2))
                {
                    Console.WriteLine($"{book.ToString()}\n{bookAlbahari2.ToString()}\nThe same books");
                }
            }

            Console.WriteLine($"\n--- GetHashCode testing ---\n");

            foreach (var book in books)
            {
                Console.WriteLine($"Hash - \'{book.GetHashCode()}' --- {book.ToString("AT")}");
            }

            Console.WriteLine($"\nHash - \'{bookAlbahari2.GetHashCode()}' --- {bookAlbahari2.ToString("AT")}");

            #endregion

            #region Book List Service testing

            Console.WriteLine($"\n*** Book Service testing ***\n");

            var bookService = new BookListService(books, nLogger);

            Console.WriteLine($"\n--- Add book (title Mumu) ---\n");

            var anotherBook = new Book("978-1-555-11223-0",
                                       "Turgenev",
                                       "Mumu",
                                       "Unknown",
                                       1967,
                                       200,
                                       10m);

            bookService.AddBook(anotherBook);

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

            Console.WriteLine($"\n--- Trying to add null to book list ---\n");

            try
            {
                bookService.AddBook(null);
            }
            catch (ArgumentNullException ex)
            {
                bookService.Logger.Error(ex.Message);
            }


            Console.WriteLine($"\n--- Trying to add book which is already exists ---\n");

            try
            {
                bookService.AddBook(anotherBook);
            }
            catch (BookAlreadyExistException ex)
            {
                bookService.Logger.Error(ex.Message);
            }

            Console.WriteLine($"\n--- Find book by tag (Publisher = Manning) ---\n");

            var publisherPredicate = new PublisherPredicate {
                Publisher = "Manning"
            };

            var searchBook = bookService.FindBookByTag(publisherPredicate);

            Console.WriteLine(searchBook);

            Console.WriteLine($"\n--- Sort book by tag (by PublishingYear, ascending) ---\n");

            bookService.SortBooksByTag(new YearComparer());

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

            Console.WriteLine($"\n--- Remove book (title = Mumu) ---\n");

            bookService.RemoveBook(anotherBook);

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

            Console.WriteLine($"\n--- Remove book (title = Mumu) ---\n");

            #endregion

            #region Book Storage testing

            Console.WriteLine($"\n*** Book Storage testing ***\n");

            Console.WriteLine($"\n--- Saving list of books to the storage ---\n");

            string path = @"storage.txt";

            var storage = new BookListStorage(path);

            bookService.SaveInStorage(storage);

            Console.WriteLine($"\n--- Loading books from the storage ---\n");

            bookService.LoadFromStorage(storage);

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

            #endregion
        }
コード例 #19
0
        static void Main(string[] args)
        {
            Book firstBook  = new Book("Tolstoy", "War And Peace", 1869, "Historical Novel");
            Book secondBook = new Book("tolstoy", "war And peace", 1869, "historical novel");
            Book thirdBook  = firstBook;
            Book fourthBook = new Book("Tolstoy", "Anna Karenina", 1873, "Novel");
            Book fifthBook  = new Book("Vonnegut ", "Slaughterhouse Five", 1969, "Satirical Novel");

            Console.WriteLine($"{firstBook.ToString()} equals");
            Console.WriteLine($"{secondBook.ToString()}");
            Console.WriteLine(firstBook.Equals(secondBook));
            Console.WriteLine($"{firstBook.ToString()} equals");
            Console.WriteLine($"{ thirdBook.ToString()}");
            Console.WriteLine(firstBook.Equals(thirdBook));
            Console.WriteLine($"{firstBook.ToString()} equals");
            Console.WriteLine($"{ fourthBook.ToString()}");
            Console.WriteLine(firstBook.Equals(fourthBook));

            Console.WriteLine($"{firstBook.ToString()} compare to");
            Console.WriteLine($"{ secondBook.ToString()}");
            Console.WriteLine(firstBook.CompareTo(secondBook));
            Console.WriteLine($"{firstBook.ToString()} compare to");
            Console.WriteLine($"{ thirdBook.ToString()}");
            Console.WriteLine(firstBook.CompareTo(thirdBook));
            Console.WriteLine($"{firstBook.ToString()} compare to");
            Console.WriteLine($"{ fourthBook.ToString()}");
            Console.WriteLine(firstBook.CompareTo(fourthBook));
            Console.WriteLine($"{fifthBook.ToString()} compare to");
            Console.WriteLine($"{ fourthBook.ToString()}");
            Console.WriteLine(fifthBook.CompareTo(fourthBook));

            Console.WriteLine($"first {firstBook.GetHashCode()}");
            Console.WriteLine($"second {secondBook.GetHashCode()}");
            Console.WriteLine($"third {thirdBook.GetHashCode()}");
            Console.WriteLine($"fourth {fourthBook.GetHashCode()}");
            Console.WriteLine($"fifth {fifthBook.GetHashCode()}");

            BookListService bookList = new BookListService();

            bookList.AddBook(firstBook);
            bookList.AddBook(fourthBook);
            bookList.AddBook(fifthBook);

            Console.WriteLine();
            bookList.RemoveBook(firstBook);

            bookList.AddBook(firstBook);

            Console.WriteLine();
            Console.WriteLine("FindBookByTag");
            Console.WriteLine(bookList.FindBookByTag(x => x.Author == "Tolstoy"));
            Console.WriteLine(bookList.FindBookByTag(x => x.Genre.Contains("Satirical")));
            Console.WriteLine(bookList.FindBookByTag(x => x.Year < 2000));

            Console.WriteLine();
            Console.WriteLine("SortByTitle");
            bookList.SortBooksByTag((x, y) => x.Title.CompareTo(y.Title));

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

            bookList.Save(storage);

            Console.WriteLine();
            Console.WriteLine("SortByYear");
            bookList.SortBooksByTag((x, y) => x.Year.CompareTo(y.Year));
            bookList.Save(storage);

            Console.WriteLine();
            Console.WriteLine("SortByGenre");
            bookList.SortBooksByTag((x, y) => x.Genre.CompareTo(y.Genre));
            bookList.Save(storage);

            BookListService secondBookList = new BookListService();

            secondBookList.Load(storage);
            Console.WriteLine($"From storage {secondBookList.FindBookByTag(x => x.Year < 2000)}");

            StorageBinarySerializer serializedStorage = new StorageBinarySerializer("booklistserialized.bin");

            bookList.Save(serializedStorage);
            BookListService thirdBookList = new BookListService();

            thirdBookList.Load(serializedStorage);
            Console.WriteLine($"From serialized storage {secondBookList.FindBookByTag(x => x.Genre.Contains("Satirical"))}");

            StorageXML xmlStorage = new StorageXML("booklistxml.xml");

            bookList.Save(xmlStorage);
            BookListService fourthBookList = new BookListService();

            fourthBookList.Load(xmlStorage);
            Console.WriteLine($"From xml storage {secondBookList.FindBookByTag(x => x.Author == "Tolstoy")}");


            Console.ReadLine();
        }
コード例 #20
0
        public static void Main(string[] args)
        {
            // Setup logger
            var config     = new LoggingConfiguration();
            var fileTarget = new FileTarget("filetarget")
            {
                FileName = "${basedir}/BookingSystem.log",
                Layout   = "[${level}] [${longdate}] --- ${message}"
            };

            config.AddTarget(fileTarget);
            config.AddRuleForAllLevels("filetarget");
            LogManager.Configuration = config;

            // Try to load library
            var library = new BookListStorage();

            if (library.LoadFromDisk("library.dat"))
            {
                Console.WriteLine("Library loaded from disk!");
            }
            else
            {
                // Fill library
                try
                {
                    library.AddBook(new Book("123-4-56789-123-1", "Mikk", "M.NET", "MPub", 2010, 75, 15));
                    library.AddBook(new Book("123-4-56789-123-2", "Mikk", "M.NET", "MPub", 2013, 85, 25));
                    library.AddBook(new Book("123-4-56789-123-3", "Mikk", "M.NET", "MPub", 2015, 95, 35));
                    library.AddBook(new Book("123-4-55555-111-0", "Gravitonas", "LStar", "UPub", 2015, 75, 25));
                    library.AddBook(new Book("123-4-55555-333-0", "J. Richter", "CLR via C#", "UPub", 2010, 950, 50));
                    Console.WriteLine("Created book library:");
                }
                catch
                {
                    Console.WriteLine("Can't add book!");
                }
            }

            if (library.IsEmpty)
            {
                Console.WriteLine("Library is empty!");
            }
            else
            {
                library.PrintLibrary(Console.Out);
            }

            Console.WriteLine();

            // Remove book
            try
            {
                library.RemoveBook("123-4-55555-111-0");
                Console.WriteLine("After removing book:");
                if (library.IsEmpty)
                {
                    Console.WriteLine("Library is empty!");
                }
                else
                {
                    library.PrintLibrary(Console.Out);
                }
            }
            catch
            {
                Console.WriteLine("Cant' remove book!");
            }

            Console.WriteLine();

            // Find books by tag
            List <Book> books = library.FindBooksByTag(BookListService.TAG.AUTHOR, "Mikk");

            Console.WriteLine("Searching books:");
            if (books.Count == 0)
            {
                Console.WriteLine("No results found!");
            }
            else
            {
                Console.WriteLine(string.Join <Book>("\n", books));
            }

            Console.WriteLine();

            // Sort books by tag
            library.SortBooksByTag(BookListService.TAG.ISBN);
            Console.WriteLine("After sorting library:");
            if (library.IsEmpty)
            {
                Console.WriteLine("Library is empty!");
            }
            else
            {
                library.PrintLibrary(Console.Out);
            }

            Console.WriteLine();

            // Try to save library
            if (library.SaveToDisk("library.dat"))
            {
                Console.WriteLine("Library saved to disk!");
            }
            else
            {
                Console.WriteLine("Can't save library!");
            }

            Console.WriteLine();
        }
コード例 #21
0
ファイル: Program.cs プロジェクト: kateLab/.NET-Training-2019
        static void Main(string[] args)
        {
            Console.WriteLine("To String Tests and equals tests:");
            Book Orwell1984    = new Book(9785170801152, "Orwell", "1984", "AST", 2015, 320, 8.12M);
            Book BraveNewWorld = new Book(9785170800858, "Aldous Huxley", "Brave New World", "AST", 2016, 352, 7.85M);

            Console.WriteLine(Orwell1984);
            Console.WriteLine();
            Console.WriteLine(BraveNewWorld);

            Console.WriteLine();
            Console.WriteLine("Are equals this books?  {0}", Orwell1984.Equals(BraveNewWorld) ? "Yes" : "No");
            Book Orwell1984Copy = new Book(9785170801152, "Orwell", "1984", "AST", 2015, 320, 8.12M);

            Console.WriteLine("Are equals books: Orwell1984 and Orwell1984copy?  {0}", Orwell1984.Equals(Orwell1984Copy) ? "Yes" : "No");
            Console.WriteLine();

            Console.WriteLine("Get Hash Code Tests");
            Console.WriteLine("1984 and Brave New World:");
            Console.WriteLine($"{Orwell1984.GetHashCode()} and {BraveNewWorld.GetHashCode()}");
            Console.WriteLine("1984 and 1984Copy");
            Console.WriteLine($"{Orwell1984.GetHashCode()} and {Orwell1984Copy.GetHashCode()}");
            Console.WriteLine();

            Console.WriteLine("Book List Storage");
            BookListStorage bookListStorage = new BookListStorage("file.bin");
            BookListService service         = new BookListService(bookListStorage);

            Book ToKillMockingbird = new Book(9785170904112, "Harper Lee", "To Kill A Mockinbird", "AST", 2017, 416, 10.2M);

            Console.WriteLine("Attempting to add an existing book");
            try
            {
                service.AddBook(Orwell1984);
                service.AddBook(BraveNewWorld);
                service.AddBook(Orwell1984Copy);
            }
            catch (BookExistsInStorageException exception)
            {
                Console.WriteLine($"Error : {exception.Message}");
            }
            Console.WriteLine();

            Console.WriteLine("Print books from storage:");
            List <Book> books = service.GetAllBooks();

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

            Console.WriteLine("Find books by author Aldous Huxley");
            List <Book> findBook = service.FindBookByTag(new AuthorTags("Aldous Huxley"));

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

            Console.WriteLine("Sort by price. Books after sort:");
            service.SortBooksByTag(new PriceCompare());
            books = service.GetAllBooks();
            foreach (var book in books)
            {
                Console.WriteLine(book);
            }
            Console.WriteLine();

            Console.WriteLine("Attempting to delete a book that does not exist");
            try
            {
                service.RemoveBook(Orwell1984);
                service.RemoveBook(ToKillMockingbird);
            }
            catch (BookIsNotInStorageException exception)
            {
                Console.WriteLine($"Error : {exception.Message}");
            }
            Console.WriteLine();
            Console.WriteLine("Orwell1984 book remove");
            Console.WriteLine("Books after remove:");
            books = service.GetAllBooks();
            foreach (var book in books)
            {
                Console.WriteLine(book);
            }

            Console.ReadLine();
        }