public void SortBy_SearchCriteriaIsNull_ThrowArgumentNullException()
        {
            var bookListService = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2010, "House", 100, 100));
            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 2010, "House", 1050, 100));
            Assert.Throws <ArgumentNullException>(() => bookListService.FindByTag(null));
        }
        public void Add_BookAlreadyExists_ThrowDuplicateItemException()
        {
            var bookThatIsAlreadyExistsInList = new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100);
            var bookListService = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100));
            Assert.Throws <DuplicateBookException>(() => bookListService.Add(bookThatIsAlreadyExistsInList));
        }
        public void Remove_BookIsNotInList_ThrowItemIsNotFoundException()
        {
            var bookThatIsNotInBookList = new Book("987-123456779-1", "NOT EXISTING IN LIST", "XXX", 2012, "XXX", 10, 20);
            var bookListService         = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100));
            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100));
            bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100));
            bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101));
            Assert.Throws <BookIsNotFoundException>(() => bookListService.Remove(bookThatIsNotInBookList));
        }
Exemplo n.º 4
0
        public void BookAlreadyInStorageExceptionTest()
        {
            FakeBookListStorage.books = new List <Book>()
            {
                new Book()
                {
                    Author           = "Рихтер Джеффри",
                    ISBN             = "978-5-496-00-433-6",
                    Title            = "CLR via C#",
                    PageCount        = 896,
                    Price            = 70,
                    PublicationYear  = 2014,
                    PublishingOffice = "Питер"
                }
            };

            var bookToAdd = new List <Book>()
            {
                new Book()
                {
                    Author           = "Рихтер Джеффри",
                    ISBN             = "978-5-496-00-433-6",
                    Title            = "CLR via C#",
                    PageCount        = 896,
                    Price            = 70,
                    PublicationYear  = 2014,
                    PublishingOffice = "Питер"
                }
            };

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

            Assert.Throws <Exceptions.BookAlreadyInStorageException>(() => bookListService.Add(bookToAdd));
        }
        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"));
        }
Exemplo n.º 6
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();
        }
        public void SortBy_BooksByYearComparer_SortBooks()
        {
            var expected = new List <Book>()
            {
                new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100),
                new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100),
                new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100),
            };
            var bookListService = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100));
            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100));
            bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100));
            IEnumerable <Book> sorted = bookListService.SortBy(new BooksPagesComparer());

            CollectionAssert.AreEqual(expected, sorted);
        }
        public void Remove_BookIsInList_RemoveBook()
        {
            var bookToDelete    = new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101);
            var bookListService = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100));
            bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100));
            bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101));
            bookListService.Remove(bookToDelete);
            var expected = new List <Book>()
            {
                new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100),
                new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100)
            };

            CollectionAssert.AreEqual(expected, bookListService.GetAll());
        }
        public void FindByTag_SearchBooksAfterYearCriteria()
        {
            var expected = new List <Book>()
            {
                new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100),
                new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101)
            };

            var bookListService = new BookListService(new BinaryStorage());

            bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100));
            bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100));
            bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100));
            bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101));
            IEnumerable <Book> foundBooks = bookListService.FindByTag(new SearchBooksAfterYearCriteria(1999));

            CollectionAssert.AreEqual(expected, foundBooks);
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            string path = @"BooksList.dat";

            try
            {
                BookListService books = new BookListService(path);
                ShowBooksList(books, "Спосок книг");

                /*
                 *      // Пример списка книг для работы
                 *
                 * books.Add(new Book() { Author = "Лев Толстой", Title = "Война и мир", Genre = "Роман", Year = 1869 });
                 * books.Add(new Book() { Author = "Алан Александр Милн",Title ="Вини-Пух", Genre = "Детский рассказ", Year = 1926});
                 * books.Add(new Book() { Author = "Мари Шелли", Title="Франкенштейн", Genre = "Научная фантастика", Year = 1818});
                 * books.Add(new Book() { Author = "Михаил Булгаков", Title ="Мастер и Маргарита", Genre="Роман", Year = 1966});
                 * books.Add(new Book() { Author = "Федор Достоевский", Title = "Преступление и наказание" , Genre = "Роман" , Year = 1866});
                 * books.Add(new Book() { Author = "Николай Гоголь", Title = "Мёртвые души", Genre = "Сатира", Year = 1842 });
                 * books.Add(new Book() { Author = "Александр Пушкин", Title = "Евгений Онегин", Genre = "Роман", Year = 1825 });
                 *
                 * books.WriteBooksList();
                 */

                books.SortBooksByTag(new ComparableBook());
                ShowBooksList(books, "Отсортированный список");

                books.Add(new Book()
                {
                    Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза"
                });
                ShowBooksList(books, "Список книг с добавленной книгой");

                books.RemoveBook(new Book()
                {
                    Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза"
                });
                ShowBooksList(books, "Список книг с удаленной книгой");

                Console.WriteLine("Спосок книг выбранны по тегу \"Жанр = Роман\"");
                foreach (Book b in books.FindByTag(new TagGanre(), "Роман"))
                {
                    Console.WriteLine(b);
                }
            }
            catch (FileNotFoundException ex)
            {
                log.Fatal(ex.Message, ex);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message, ex);
            }
        }
Exemplo n.º 11
0
        public void AddTest()
        {
            FakeBookListStorage.books = new List <Book>()
            {
                new Book()
                {
                    Author           = "Рихтер Джеффри",
                    ISBN             = "978-5-496-00-433-6",
                    Title            = "CLR via C#",
                    PageCount        = 896,
                    Price            = 70,
                    PublicationYear  = 2014,
                    PublishingOffice = "Питер"
                }
            };

            var bookFirstToAdd = new Book()
            {
                Author           = "Тепляков Сергей",
                ISBN             = "978-5-496-01649-0",
                Title            = "Паттерны проектирования",
                PageCount        = 320,
                Price            = 100,
                PublicationYear  = 2016,
                PublishingOffice = "Питер"
            };

            var bookSecondToAdd = new Book()
            {
                Author           = "Албахари",
                ISBN             = "978-5-496-00-433-6",
                Title            = "C# 3.0 справочник",
                PageCount        = 944,
                Price            = 23,
                PublicationYear  = 2012,
                PublishingOffice = "BHV"
            };

            var bookList = new List <Book>();

            bookList.Add(bookFirstToAdd);
            bookList.Add(bookSecondToAdd);

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

            bookListService.Add(bookList);

            Assert.AreEqual(3, bookListService.Books.Count);
            Assert.AreEqual(bookFirstToAdd, bookListService.Books[1]);
            Assert.AreEqual(bookSecondToAdd, bookListService.Books[2]);
        }
        public static void ReadFromFile(string fileName, BookListService <Book> bls)
        {
            try
            {
                var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                var br = new BinaryReader(fs);

                while (br.BaseStream.Position != br.BaseStream.Length)
                {
                    bls.Add(new Book(br.ReadString(), br.ReadString(), br.ReadString(), br.ReadInt32(), br.ReadInt32()));
                }
            }
            catch
            {
                Console.WriteLine("An exception in file reading!");
            }
        }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            string path = @"BooksList.dat";

            try
            {
                BookListService books = new BookListService(path);
                ShowBooksList(books, "Спосок книг");
                
             /*
                     // Пример списка книг для работы 
              
                books.Add(new Book() { Author = "Лев Толстой", Title = "Война и мир", Genre = "Роман", Year = 1869 });
                books.Add(new Book() { Author = "Алан Александр Милн",Title ="Вини-Пух", Genre = "Детский рассказ", Year = 1926});
                books.Add(new Book() { Author = "Мари Шелли", Title="Франкенштейн", Genre = "Научная фантастика", Year = 1818}); 
                books.Add(new Book() { Author = "Михаил Булгаков", Title ="Мастер и Маргарита", Genre="Роман", Year = 1966});
                books.Add(new Book() { Author = "Федор Достоевский", Title = "Преступление и наказание" , Genre = "Роман" , Year = 1866});
                books.Add(new Book() { Author = "Николай Гоголь", Title = "Мёртвые души", Genre = "Сатира", Year = 1842 });
                books.Add(new Book() { Author = "Александр Пушкин", Title = "Евгений Онегин", Genre = "Роман", Year = 1825 });

                books.WriteBooksList();
              */
                
                books.SortBooksByTag(new ComparableBook());
                ShowBooksList(books, "Отсортированный список");

                books.Add(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" });
                ShowBooksList(books, "Список книг с добавленной книгой");
                
                books.RemoveBook(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" });
                ShowBooksList(books, "Список книг с удаленной книгой");

                Console.WriteLine("Спосок книг выбранны по тегу \"Жанр = Роман\"");
                foreach (Book b in books.FindByTag(new TagGanre(), "Роман"))
                    Console.WriteLine(b);
            }
            catch (FileNotFoundException ex)
            {
                log.Fatal(ex.Message, ex);
            }
            catch(Exception ex)
            {
                log.Error(ex.Message, ex);
            }
        }
        public void Add_BookToAddIsNull_ThrowArgumentNullException()
        {
            var bookListService = new BookListService(new BinaryStorage());

            Assert.Throws <ArgumentNullException>(() => bookListService.Add(null));
        }