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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
            }
        }