private void DeleteCopiesButton_Click(object sender, EventArgs e) { if (BooksListBox.CheckedItems.Count == 0) { var selectError = new ErrorForm("You must select a book to delete copies!"); selectError.ShowDialog(); return; } if (string.IsNullOrWhiteSpace(NumberOfCopiesToDeleteTextBox.Text)) { return; } var selected = BooksListBox.SelectedItem.ToString(); var deletedAllAvailableCopies = false; for (var i = 0; i < int.Parse(NumberOfCopiesToDeleteTextBox.Text); i++) { var copyToDelete = _bookCopyRepository.GetAllBookCopies().FirstOrDefault(bookCopy => bookCopy.Book.ToString() == selected && bookCopy.Status == BookStatus.Available); if (copyToDelete == null) { deletedAllAvailableCopies = true; break; } _bookCopyRepository.TryDelete(copyToDelete); } if (_bookCopyRepository.GetAllBookCopies().FirstOrDefault(bookCopy => bookCopy.Book.ToString() == selected) == null) { _bookRepository = new BookRepository(); _bookCopyRepository = new BookCopyRepository(); var checkedBook = _bookRepository.GetAllBooks() .FirstOrDefault(book => book.ToString() == selected); _bookRepository.TryDelete(checkedBook); } else if (deletedAllAvailableCopies) { var borrowedError = new ErrorForm("Borrowed copies cannot be deleted until returned!"); borrowedError.ShowDialog(); } NumberOfCopiesToDeleteTextBox.Text = ""; RefreshBookInfoListBox(); RefreshBooksListBox(); }
private void SaveButton_Click(object sender, EventArgs e) { if (CheckForErrors()) { var fieldsError = new ErrorForm("You are missing some required fields!"); fieldsError.ShowDialog(); return; } var studentToAdd = _studentRepository.GetAllStudents() .FirstOrDefault(student => student.ToString() == StudentComboBox.Text); foreach (var checkedItem in BooksListBox.CheckedItems) { var bookToAdd = _bookRepository.GetAllBooks() .FirstOrDefault(book => book.ToString() == checkedItem.ToString()); var isAvailable = _bookRepository.IsBookAvailable(bookToAdd); if (!isAvailable) { var copiesError = new ErrorForm($"There are no available copies of {bookToAdd}!"); copiesError.ShowDialog(); continue; } var bookCopyToAdd = _bookCopyRepository.GetAllBookCopies().First(bookCopy => bookCopy.Book.ToString() == checkedItem.ToString() && bookCopy.Status == BookStatus.Available); var eventToAdd = new BorrowEvent(DateOfRentPicker.Value, null, studentToAdd, bookCopyToAdd); _borrowEventRepository.AddBorrowEvent(eventToAdd); } LoadStudentComboBox(); BooksListBox.Items.Clear(); }
private void RefreshBooksListBox() { _studentRepository = new StudentRepository(); _bookRepository = new BookRepository(); _bookCopyRepository = new BookCopyRepository(); _borrowEventRepository = new BorrowEventRepository(); BooksListBox.Items.Clear(); var studentBooksBorrowed = _borrowEventRepository.GetBorrowEventsByStudent(StudentComboBox.Text).ToList(); var readOnlyBookCopies = _bookCopyRepository.GetAllBookCopies().Where(bookCopy => bookCopy.Status == BookStatus.ReadOnly) .GroupBy(bookCopy => bookCopy.Book.ToString()).ToList(); var readOnlyBooks = new List <Book>(); foreach (var bookCopy in readOnlyBookCopies) { readOnlyBooks.Add(_bookRepository.GetAllBooks().First(book => book.ToString() == bookCopy.Key)); } foreach (var book in _bookRepository.GetAllBooks().OrderBy(book => book.Name).ThenBy(book => book.Publisher.ToString())) { if (studentBooksBorrowed.Any(borrowEvent => borrowEvent.BookCopy.Book.ToString() == book.ToString()) || readOnlyBooks.Contains(book)) { continue; } BooksListBox.Items.Add(book); } }
private void LoadReadOnlyBooksTextBox() { var readOnlyBookCopies = _bookCopyRepository.GetAllBookCopies().Where(bookCopy => bookCopy.Status == BookStatus.ReadOnly) .GroupBy(bookCopy => bookCopy.Book.ToString()).ToList(); foreach (var bookCopy in readOnlyBookCopies) { ReadOnlyBooksListBox.Items.Add(bookCopy.Key); } }
private void RefreshBooksListBox() { _bookCopyRepository = new BookCopyRepository(); _borrowEventRepository = new BorrowEventRepository(); BooksListBox.Items.Clear(); var borrowedBookCopiesByBook = _bookCopyRepository.GetAllBookCopies() .Where(bookCopy => bookCopy.Status == BookStatus.Borrowed) .GroupBy(bookCopy => bookCopy.Book.ToString()); foreach (var bookCopy in borrowedBookCopiesByBook) { BooksListBox.Items.Add(bookCopy.Key); } }