public BarcodeScannerController(TakenBookPresenter takenBookPresenter, BookPresenter bookPresenter, ScannerPresenter scannerPresenter) { _takenBookPresenter = takenBookPresenter; _bookPresenter = bookPresenter; _scannerPresenter = scannerPresenter; }
private void ListBooks_Click(object sender, EventArgs e) { BookList model = new BookList(); BookFormView view = new BookFormView(); BookPresenter presenter = new BookPresenter(model, view); view.Show(); }
private void OnEditBook(object sender, EventArgs e) { // Проверяем, есть ли хотя бы один выделенный элемент в списке книг if (View.ListView.SelectedItems.Count == 0) { return; } // Коллекция выделенных элементов в списке книг представления. // Делаем копию, потому что View.ListView.SelectedIndices возвращает ссылку // на актуальную коллекцию, а она будет очищена при вызове UpdateView. var selectedIndices = new int[View.ListView.SelectedIndices.Count]; View.ListView.SelectedIndices.CopyTo(selectedIndices, 0); // Если выделенных элементов несколько, то берем первый из них int selectedIndex = selectedIndices[0]; Book book = (Book)View.ListView.Items[selectedIndex].Tag; var bookPresenter = new BookPresenter(Model, new BookForm()); bookPresenter.Title = "Изменение существующей книги"; bookPresenter.AuthorFk = book.AuthorFk; bookPresenter.View.BookName = book.Name; bookPresenter.View.Pages = book.Pages; bookPresenter.View.Price = book.Price; bookPresenter.PressFk = book.PressFk; if (((Form)bookPresenter.View).ShowDialog() == DialogResult.OK) { try { book.AuthorFk = bookPresenter.AuthorFk; book.Name = bookPresenter.View.BookName; book.Pages = bookPresenter.View.Pages; book.Price = bookPresenter.View.Price; book.PressFk = bookPresenter.PressFk; Model.BookRepository.Update(book); } catch (Exception ex) { MessageBox.Show("Произошла ошибка при изменении информации о книге.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); Utils.Log.Trace(ex); } // Пересчитываем список книг UpdateView(); } // Восстанавливаем выделение View.ListView.Select(); foreach (int index in selectedIndices) { View.ListView.Items[index].Selected = true; View.ListView.EnsureVisible(index); } }
private void OnAddBook(object sender, EventArgs e) { // Таблица Authors не должна быть пустой, поскольку внешний ключ AuthorFk таблицы Books не может быть NULL if (Model.AuthorRepository.GetAll().ToList().Count == 0) { MessageBox.Show("Справочник \"Авторы\" пуст. Необходимо, чтобы он содержал хотя бы одного автора.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Таблица Presses не должна быть пустой, поскольку внешний ключ PressFk таблицы Books не может быть NULL if (Model.PressRepository.GetAll().ToList().Count == 0) { MessageBox.Show("Справочник \"Издательства\" пуст. Необходимо, чтобы он содержал хотя бы одно издательство.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var bookPresenter = new BookPresenter(Model, new BookForm()); bookPresenter.Title = "Новая книга"; bookPresenter.AuthorFk = 0; bookPresenter.PressFk = 0; if (((Form)bookPresenter.View).ShowDialog() == DialogResult.OK) { try { Model.BookRepository.Add(new Book { Id = 0, AuthorFk = bookPresenter.AuthorFk, Name = bookPresenter.View.BookName, Pages = bookPresenter.View.Pages, Price = bookPresenter.View.Price, PressFk = bookPresenter.PressFk }); } catch (Exception ex) { MessageBox.Show("Произошла ошибка при добавлении новой книги.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); Utils.Log.Trace(ex); } // Пересчитываем список книг UpdateView(); // Выделяем добавленную (последнюю в списке) книгу View.ListView.Select(); View.ListView.Items[View.ListView.Items.Count - 1].Selected = true; View.ListView.EnsureVisible(View.ListView.Items.Count - 1); } else { // Восстанавливаем фокус и выделение книг View.ListView.Select(); } }
public void ReserveTest() { bool success = false; var adminController = new AdminPresenter(); var bookController = new BookPresenter(); var successfullAdd = adminController.AddBook(reservationBook); bookController.Reserve(reservationBook.SerialNumber, user.Username); var book = bookRepository.GetByID(reservationBook.SerialNumber); if (book.Status.Equals("Reserved")) { success = true; } var successfulDelete = adminController.RemoveBook(reservationBook); Assert.IsTrue(success); }
public void RenewLoanTest() { bool success = false; var adminController = new AdminPresenter(); var bookController = new BookPresenter(); var successfullAdd = adminController.AddBook(loanBook); bookController.Loan(loanBook.SerialNumber, user.Username); var loan = loanRepository.GetByBookId(loanBook.SerialNumber); var book = bookRepository.GetByID(loanBook.SerialNumber); if (book.Status.Equals("Unavaliable")) { var successfullLoanRenewal = adminController.RenewLoan(loan.Id); success = successfullLoanRenewal; } var successfulDelete = adminController.RemoveBook(loanBook); Assert.IsTrue(success); }
public BookCatalogForm(string username) { _bookPresenter = new BookPresenter(); _username = username; InitializeComponent(); }
public BookController(BookPresenter bookPresenter) { _bookPresenter = bookPresenter; }
public BookHistoryController(BookPresenter bookPresenter) { _bookPresenter = bookPresenter; }