コード例 #1
0
        public void TestGetBookTitlesForAuthor()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book1 = new Book("BookTitle1", authors);
            var book2 = new Book("BookTitle2", new List <Author>()
            {
                authors[0]
            });
            var books = new List <Book>()
            {
                book1, book2
            };

            bookDatabase = new BookDatabase(books);
            try
            {
                var bookTitles = bookDatabase.GetBookTitlesForAuthor(authors[0].Name);
                Assert.AreEqual(2, bookTitles.Count);
                var titles = books.Select(a => a.Title).ToList();
                CollectionAssert.AreEquivalent(titles, bookTitles);
            }
            catch (Exception e)
            {
                Assert.Fail("Getting book titles for author should not fail when author exists");
            }
        }
コード例 #2
0
        public void TestGetAuthorsForBook()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book = new Book("BookTitle", authors);

            bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            try
            {
                var bookAuthors = bookDatabase.GetAuthorsForBook(book.Title);
                Assert.AreEqual(2, bookAuthors.Count);
                var authorNames = authors.Select(a => a.Name).ToList();
                CollectionAssert.AreEquivalent(authorNames, bookAuthors);
            }
            catch (Exception e)
            {
                Assert.Fail("Getting authors should not fail when book exists");
            }
        }
コード例 #3
0
        private void updateStateDorm(object sender, string msg, int state)
        {
            Button   button = sender as Button;
            BookDorm dorm   = button.DataContext as BookDorm;

            if (BookDatabase.UpdateDormWhenBook(dorm.EmailOwner, dorm.EmailUser, dorm.IdDorm, state))
            {
                if (BookDatabase.DeleteDormWhenBook(dorm.EmailOwner, dorm.EmailUser, dorm.IdDorm))
                {
                    Helpers.MakeConfirmMessage(Window.GetWindow(this), $"The Dorm has been {msg} to { dorm.EmailUser}", "Notify");
                    int count = DormDatabase.GetCount(dorm.IdDorm) + 1;
                    DormDatabase.UpdateCountDorm(dorm.IdDorm, count);
                    MainControl mainControl = (MainControl)Window.GetWindow(this);
                    mainControl.MainHomeLayout.Children.Clear();
                    mainControl.MainHomeLayout.VerticalAlignment   = VerticalAlignment.Top;
                    mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left;
                    mainControl.MainHomeLayout.Width  = 1150;
                    mainControl.MainHomeLayout.Height = 720;
                    mainControl.MainHomeLayout.Children.Add(new MyDorm(mainControl.user));
                }
                else
                {
                    Helpers.MakeErrorMessage(Window.GetWindow(this), $"Failed {msg} to {dorm.EmailUser}", "Error");
                }
            }
        }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: Mattadon/Bookish
        public ActionResult StartIndex()
        {
            //return RedirectToAction("AccountPage", "Account");
            BookDatabase db = new BookDatabase();

            return(View("Index", db));
        }
コード例 #5
0
        private void ConfigureDatabase()
        {
            string pathToDatabase = System.IO.Path.Combine(book.Path, "Data");

            System.IO.Directory.CreateDirectory(pathToDatabase);
            database = new BookDatabase(pathToDatabase);
        }
コード例 #6
0
        public void TestGetBookTitlesForAuthorThatDoesntExist()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book = new Book("BookTitle", authors);

            bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            try
            {
                bookDatabase.GetBookTitlesForAuthor(authors[0].Name + "1111");
                Assert.Fail("Should throw exception when the author doesn't exist");
            }
            catch (ArgumentException)
            {
            }
            catch (Exception e)
            {
                Assert.Fail("Should throw ArgumentException");
            }
        }
コード例 #7
0
        public void Save()
        {
            MessageBox.Show("Buch gespeichert!");
            var book = new Book(SelectedBook.ISBN, SelectedBook.Publisher, SelectedBook.Name, SelectedBook.Author, SelectedBook.Description);

            BookDatabase.SaveBook(book);
        }
コード例 #8
0
        private void initBookDorm()
        {
            try
            {
                BookDorm bookDorm = new BookDorm();
                bookDorm.EmailOwner = owner.Email;
                bookDorm.EmailUser  = user.Email;
                bookDorm.IdDorm     = dorm.Id;
                bookDorm.StateDorm  = 1;

                bookDorm = BookDatabase.GetItem(bookDorm);
                if (bookDorm.StateDorm == 0)
                {
                    spinnerBook.Visibility = Visibility.Collapsed;
                    btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2DCA73"));
                    btnBooked.IsEnabled    = true;
                }
                else if (bookDorm.StateDorm == 1)
                {
                    spinnerBook.Visibility = Visibility.Visible;
                    btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#A2D8E9"));
                    btnBooked.IsEnabled    = true;
                }
                else
                {
                    spinnerBook.Visibility = Visibility.Collapsed;
                    btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0"));
                    btnBooked.IsCancel     = true;
                }
                lbStateBook.Content = Helpers.ConvertStateToText(bookDorm.StateDorm);
            }
            finally
            {
            }
        }
コード例 #9
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            TransitioningContentSlide.ApplyTemplate();
            layoutDorm.Children.Clear();
            layoutDorm.VerticalAlignment   = VerticalAlignment.Top;
            layoutDorm.HorizontalAlignment = HorizontalAlignment.Left;
            layoutDorm.Width  = 1150;
            layoutDorm.Height = 720;

            if (handlerArrowLeft == 0)
            {
                layoutDorm.Children.Add(new HomeControl(user));
            }
            else if (handlerArrowLeft == 1)
            {
                layoutDorm.Children.Add(new MyDorm(user));
            }
            else if (handlerArrowLeft == 2)
            {
                layoutDorm.Children.Add(new MyDorm(BookDatabase.GetUserDorm(user.Email, dorm.Id)));
            }
            else
            {
                layoutDorm.Children.Add(new LikedDorm(LikeDatabase.GetAllListDormByEmail(user.Email), user));
            }
        }
コード例 #10
0
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            Button           button = sender as Button;
            Dorm             dorm   = button.DataContext as Dorm;
            MessageBoxResult result = MessageBox.Show("Would you like to delete this dorm?", "Notify", MessageBoxButton.YesNo);

            switch (result)
            {
            case MessageBoxResult.Yes:
                if (DormDatabase.Delete(dorm.Id))
                {
                    BookDatabase.DeleteByIdDorm(dorm.Id);
                    OwnerDormDatabase.DeleteByDormId(dorm.Id);
                    LikeDatabase.DeleteById(dorm.Id);
                    CommentDatabase.DeleteByIdDorm(dorm.Id);
                    MainControl mainControl = (MainControl)Window.GetWindow(this);
                    mainControl.MainHomeLayout.Children.Clear();
                    mainControl.MainHomeLayout.VerticalAlignment   = VerticalAlignment.Top;
                    mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left;
                    mainControl.MainHomeLayout.Width  = 1150;
                    mainControl.MainHomeLayout.Height = 720;
                    mainControl.MainHomeLayout.Children.Add(new MyDorm(mainControl.user));
                }
                break;
            }
        }
コード例 #11
0
        public void Delete()
        {
            MessageBox.Show("Buch gelöscht!");
            Books.Remove(SelectedBook);
            var book = new Book(SelectedBook.ISBN, SelectedBook.Publisher, SelectedBook.Name, SelectedBook.Author, SelectedBook.Description);

            BookDatabase.DeleteBook(book);
        }
コード例 #12
0
        public static BookDatabase getInstance()
        {
            if (_bookDatabase == null)
            {
                _bookDatabase = new BookDatabase();
            }

            return(_bookDatabase);
        }
コード例 #13
0
 private void btnBooked_Click(object sender, RoutedEventArgs e)
 {
     if (user.Email.Equals(owner.Email))
     {
         Helpers.MakeErrorMessage(Window.GetWindow(this), "You are owner so can't book dorm", "Error");
     }
     else if (!BookDatabase.GetEmailBookDorm(owner.Email, dorm.Id).Equals("No"))
     {
         if (BookDatabase.GetEmailBookDorm(owner.Email, dorm.Id).Equals(user.Email))
         {
             Helpers.MakeConfirmMessage(Window.GetWindow(this), "Dorm was booked by you", "Notify");
         }
         else
         {
             Helpers.MakeErrorMessage(Window.GetWindow(this), "Dorm was booked by " + BookDatabase.GetEmailBookDorm(owner.Email, dorm.Id), "Error");
         }
     }
     else
     {
         BookDorm bookDorm = new BookDorm();
         bookDorm.EmailOwner = owner.Email;
         bookDorm.EmailUser  = user.Email;
         bookDorm.IdDorm     = dorm.Id;
         bookDorm.StateDorm  = 1;
         if (BookDatabase.Insert(bookDorm))
         {
             spinnerBook.Visibility = Visibility.Visible;
             btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#A2D8E9"));
             lbStateBook.Content    = "Booking...";
         }
         else
         {
             bookDorm = BookDatabase.GetItem(bookDorm);
             if (bookDorm.StateDorm == 0)
             {
                 spinnerBook.Visibility = Visibility.Visible;
                 btnBooked.IsEnabled    = true;
                 btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#A2D8E9"));
                 bookDorm.StateDorm     = 1;
                 BookDatabase.Update(bookDorm);
             }
             else if (bookDorm.StateDorm == 1)
             {
                 spinnerBook.Visibility = Visibility.Collapsed;
                 btnBooked.IsEnabled    = true;
                 btnBooked.Background   = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2DCA73"));
                 bookDorm.StateDorm     = 0;
                 BookDatabase.Update(bookDorm);
             }
             lbStateBook.Content = Helpers.ConvertStateToText(bookDorm.StateDorm);
         }
     }
 }
コード例 #14
0
 private void initState()
 {
     list = BookDatabase.GetAllWattingBook(owner.Email, true);
     if (list.Count != 0)
     {
         notifyMyDorm.Visibility = System.Windows.Visibility.Visible;
     }
     else
     {
         notifyMyDorm.Visibility = System.Windows.Visibility.Collapsed;
     }
 }
コード例 #15
0
        protected override void OnInitializeInRuntime()
        {
            Books = new ObservableCollection <BookViewModel>();
            var books = BookDatabase.GetBooks();

            foreach (var book in books)
            {
                BookViewModel vm = new BookViewModel(book.ISBN, book.Publisher, book.Name, book.Author, book.Description);
                Books.Add(vm);
            }
            base.OnInitializeInRuntime();
        }
コード例 #16
0
        private void listViewDormBook_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            BookDorm    dormB       = listViewDormBook.SelectedItem as BookDorm;
            Dorm        dorm        = DormDatabase.Get(dormB.IdDorm);
            MainControl mainControl = (MainControl)Window.GetWindow(this);

            mainControl.MainHomeLayout.Children.Clear();
            TransitioningContentSlide.OnApplyTemplate();
            mainControl.MainHomeLayout.VerticalAlignment   = VerticalAlignment.Top;
            mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left;
            mainControl.MainHomeLayout.Width  = 1150;
            mainControl.MainHomeLayout.Height = 720;
            mainControl.MainHomeLayout.Children.Add(new ShowDorm(dorm, BookDatabase.GetOwnerByIdDorm(dorm.Id), 2));
        }
コード例 #17
0
        public void TestDeleteBooksByAuthorSuccess_Multi()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book = new Book("BookTitle", authors);

            bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            try
            {
                bookDatabase.DeleteBooksByAuthor(authors[0].Name, true);
            }
            catch (Exception e)
            {
                Assert.Fail();
            }
            // Check book title
            try
            {
                bookDatabase.GetAuthorsForBook(book.Title);
                Assert.Fail("Book should not exist anymore");
            }
            catch (ArgumentException)
            {
            }
            catch (Exception)
            {
                Assert.Fail("Should throw ArgumentException");
            }
            // Check authors
            try
            {
                bookDatabase.GetBookTitlesForAuthor(authors[0].Name);
                Assert.Fail("Book should not exist anymore");
            }
            catch (ArgumentException)
            {
            }
            catch (Exception)
            {
                Assert.Fail("Should throw ArgumentException");
            }
        }
コード例 #18
0
ファイル: HomeController.cs プロジェクト: Mattadon/Bookish
        public ActionResult Index(BookDatabase model)
        {
            BookDatabase db;

            //return RedirectToAction("AccountPage", "Account");
            if (!model.SearchTerm.IsEmpty())
            {
                db = new BookDatabase(model.SearchTerm, model.SearchSection);
            }
            else
            {
                db = new BookDatabase();
            }

            return(View(db));
        }
コード例 #19
0
 private void btnComment_Click(object sender, RoutedEventArgs e)
 {
     if (user.Email.Equals(owner.Email))
     {
         Helpers.MakeErrorMessage(Window.GetWindow(this), "You are owner so can't rating", "Error");
     }
     else
     {
         if (BookDatabase.GetEmailBookDorm(owner.Email, dorm.Id).Equals(user.Email))
         {
             ValueRating = ratingBar.Value;
             Comment     = tbComment.Text.Trim();
             if (ValueRating == 0)
             {
                 Helpers.MakeErrorMessage(Window.GetWindow(this), "You must rating dorm ", "Error");
             }
             else
             {
                 if (CommentDatabase.Insert(owner.Email, dorm.Id, user.Email, Comment, ValueRating))
                 {
                     Helpers.MakeConfirmMessage(Window.GetWindow(this), "Thanks you bro", "Notify");
                     if (CommentDatabase.GetAvgRating(owner.Email, dorm.Id) != -1)
                     {
                         DormDatabase.UpdateRating(dorm.Id, CommentDatabase.GetAvgRating(owner.Email, dorm.Id));
                         dorm.Quality = (dorm.Quality + ValueRating) / DormDatabase.GetCount(dorm.Id);
                         MainControl mainControl = (MainControl)Window.GetWindow(this);
                         mainControl.MainHomeLayout.Children.Clear();
                         mainControl.MainHomeLayout.VerticalAlignment   = VerticalAlignment.Top;
                         mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left;
                         mainControl.MainHomeLayout.Width  = 1150;
                         mainControl.MainHomeLayout.Height = 720;
                         mainControl.MainHomeLayout.Children.Add(new ShowDorm(dorm, user, 1));
                     }
                 }
                 else
                 {
                     Helpers.MakeErrorMessage(Window.GetWindow(this), "You already rating this dorm", "Error");
                 }
             }
         }
         else
         {
             Helpers.MakeErrorMessage(Window.GetWindow(this), "You can't comment because you have never book this dorm", "Error");
         }
     }
 }
コード例 #20
0
        public ExampleMvvmLibraryViewModel()
        {
            var books = BookDatabase.GetExampleBooks();

            foreach (var book in books)
            {
                ExampleMvvmBookViewModel vm = new ExampleMvvmBookViewModel()
                {
                    ISBN      = book.ISBN,
                    Author    = book.Author,
                    Name      = book.Name,
                    Publisher = book.Publisher
                };
                Books.Add(vm);
            }

            SaveCommand   = new ButtonCommand(obj => SaveCommandExecute(), () => SaveCommandCanExecute());
            DeleteCommand = new ButtonCommand(obj => DeleteCommandExecute(), () => DeleteCommandCanExecute());
        }
コード例 #21
0
        public void TestInitialiseWithBooks()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book         = new Book("BookTitle", authors);
            var bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            var bookAuthors = bookDatabase.GetAuthorsForBook(book.Title);

            Assert.AreEqual(2, bookAuthors.Count);
            var bookTitles = bookDatabase.GetBookTitlesForAuthor(authors[0].Name);

            Assert.AreEqual(1, bookTitles.Count);
            bookTitles = bookDatabase.GetBookTitlesForAuthor(authors[1].Name);
            Assert.AreEqual(1, bookTitles.Count);
        }
コード例 #22
0
        public void TestDeleteBookThatDoesntExist()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book = new Book("BookTitle", authors);

            bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            try
            {
                bookDatabase.DeleteBook(book.Title + "1111");
            }
            catch (Exception e)
            {
                Assert.Fail("Delete book operation should not fail when deleting a non-existent book");
            }
        }
コード例 #23
0
        private void btnCanel_Click(object sender, RoutedEventArgs e)
        {
            Button           button      = sender as Button;
            BookDorm         dormB       = button.DataContext as BookDorm;
            Dorm             dorm        = DormDatabase.Get(dormB.IdDorm);
            MainControl      mainControl = (MainControl)Window.GetWindow(this);
            MessageBoxResult result      = MessageBox.Show("Would you like to cancel booking this dorm?", "Notify", MessageBoxButton.YesNo);

            switch (result)
            {
            case MessageBoxResult.Yes:
                if (BookDatabase.DeleteDormWhenBookUser(mainControl.user.Email, dorm.Id))
                {
                    mainControl.MainHomeLayout.Children.Clear();
                    mainControl.MainHomeLayout.VerticalAlignment   = VerticalAlignment.Top;
                    mainControl.MainHomeLayout.HorizontalAlignment = HorizontalAlignment.Left;
                    mainControl.MainHomeLayout.Width  = 1150;
                    mainControl.MainHomeLayout.Height = 720;
                    mainControl.MainHomeLayout.Children.Add(new MyDorm(mainControl.user));
                }
                break;
            }
        }
コード例 #24
0
        public void TestDeleteBooksByAuthorThatDoesntExist()
        {
            var authors = new List <Author>()
            {
                new Author("AuthorA"),
                new Author("AuthorB"),
            };
            var book = new Book("BookTitle", authors);

            bookDatabase = new BookDatabase(new List <Book>()
            {
                book
            });
            try
            {
                bookDatabase.DeleteBooksByAuthor(authors[0].Name + "1111", true);
                bookDatabase.DeleteBooksByAuthor(authors[0].Name + "1111", false);
            }
            catch (Exception e)
            {
                Assert.Fail("Delete books by author operation should not fail when deleting those by an unknown author");
            }
        }
コード例 #25
0
 private void btnDormWating_Click(object sender, RoutedEventArgs e)
 {
     layoutControl.Children.Clear();
     TransitioningContentSlide.OnApplyTemplate();
     layoutControl.Children.Add(new WaittingScreen(BookDatabase.GetAllWattingBook(owner.Email, false)));
 }
コード例 #26
0
 public RentalsController(BookDatabase context)
 {
     _context = context;
 }
コード例 #27
0
 public Academic()
 {
     _bookDatabase = BookDatabase.getInstance();
 }
コード例 #28
0
 protected override void OnInitializeInRuntime()
 {
     base.OnInitializeInRuntime();
     Books = BookDatabase.GetExampleBooks();
 }
コード例 #29
0
 public Library()
 {
     _bookDatabase = BookDatabase.getInstance();
 }
コード例 #30
0
 public void SetUp()
 {
     bookDatabase = new BookDatabase();
 }