public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); this.bookService = new BookService(repFactory); this.bookCopyService = new BookCopyService(repFactory); this.authorService = new AuthorService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); //Can we do this another way? ShowAllBooks(bookService.All()); AuthorTabShowAllAuthors(authorService.All()); BookTabShowAllAuthors(authorService.All()); MemberTabShowAllMembers(memberService.All()); BookTabBooksByAuthor(authorService.All()); ShowAllBooksInComboBox(bookService.All()); LoanTabShowMembers(memberService.All()); LoanTabShowCopies(bookCopyService.GetAvailableBookCopies(loanService.All(), bookCopyService.All())); ShowAllLoans(loanService.GetAllCurrentLoans(), loanService.GetAllPreviousLoans(), loanService.GetAllOverdueLoans()); LoanTabShowLoansByMember(memberService.All()); TEST(loanService.All(), bookCopyService.All()); }
/// <summary> /// "Add new copy"-button /// </summary> private void button1_Click(object sender, EventArgs e) { if ((Book)comboBoxBook.SelectedItem != null) { try { BookCopy copy = new BookCopy((Book)comboBoxBook.SelectedItem, Convert.ToInt32(numericUpDownCopies.Value)); bookCopyService.Add(copy); ShowAllBooks(bookService.All()); LoanTabShowCopies(bookCopyService.GetAvailableBookCopies(loanService.All(), bookCopyService.All())); TEST(loanService.All(), bookCopyService.All()); } catch (ArgumentNullException) { MessageBox.Show("Value can not be null.", "ArgumentNullException"); } } else { MessageBox.Show("You need to choose a book.", "Error!"); } }
/// <summary> /// Creates a Loan object /// </summary> /// <param name="sender"> /// Object reference /// </param> /// <param name="e"> /// Event data /// </param> private void btn_Create_Loan_Click(object sender, EventArgs e) { MakeLoanDialog mld = new MakeLoanDialog(memberService.All(), bookCopyService.GetAvailableBookCopies(loanService.All())); if (mld.ShowDialog() == DialogResult.OK) { if (mld._LoanBookCopy == null) { MessageBox.Show("No loan created: You must choose a book from the drop-down-list to loan", "Error: Book Copy", MessageBoxButtons.OK); } else if (mld._LoanMember == null) { MessageBox.Show("No loan created: You must choose a member from the drop-down-list for the loan", "Error: Member", MessageBoxButtons.OK); } else { loanService.CreateNewLoan(mld._TimeOfLoan, mld._DueDate, mld._LoanBookCopy, mld._LoanMember); } } }