public void ReturnBook_Click(object sender, EventArgs e) { var actuallLease = _leasesRepository.GetByQuery(x => x.Copy.Id == selectedBook.Id); var actuallReserved = _reservationsRepository.GetByQuery(x => x.ReservedCopy.Id == selectedBook.Id); foreach (var lease in actuallLease) { if (lease.ActualReturn == DateTime.MinValue) { //add return date lease.ActualReturn = System.DateTime.Now; lease.Copy.Available = true; if (actuallReserved.Count() != 0) { foreach (var reseved in actuallReserved) { if (reseved != null) { var reservToLease = new DataInterface.Entities.Lease(1, DateTime.Now, DateTime.Now.AddDays(14.0), DateTime.MinValue, _usersRepository.GetById(reseved.ReservedBy.Id), _booksRepository.GetById(selectedBook.Id), new DataInterface.Entities.Fine()); lease.Copy.Available = false; _leasesRepository.Save(reservToLease); _reservationsRepository.DeleteById(reseved.Id); MessageBox.Show("Copy returned"); return; } } } } MessageBox.Show("Copy returned"); } }
public void Borrow_Click(object sender, EventArgs e) { int userID = GetUserId(); var user = _usersRepository.GetById(userID); var book = _booksRepository.GetById(selectedBook.Id); var allLease = _leasesRepository.GetAll(); var allReserved = _reservationsRepository.GetAll(); var oneLease = _leasesRepository.GetByQuery(x => x.Copy.Id == book.Id).Where(x => x.User.Id == user.Id); var oneReserved = _reservationsRepository.GetByQuery(x => x.ReservedCopy.Id == book.Id).Where(x => x.ReservedBy.Id == user.Id); if (allLease != null) { foreach (var lease in allLease) { foreach (var onelease in oneLease) { if (lease.Copy.Id == selectedBook.Id && lease.User.Id == user.Id && onelease.ActualReturn == DateTime.MinValue) { MessageBox.Show("You already borrowed this book"); return; } } } } if (allReserved != null) { foreach (var reseved in allReserved) { if (reseved.ReservedCopy.Id == book.Id && reseved.ReservedBy.Id == user.Id) { MessageBox.Show("You already reserved this book"); return; } else if (reseved.ReservedCopy.Id == book.Id && reseved.ReservedBy.Id != user.Id) { MessageBox.Show("You cannot reserved this book\n Because is already reserved by other user"); return; } } } if (selectedBook.Id != -1) { if (selectedBook.Available) { var lease = new DataInterface.Entities.Lease(); lease.StartDate = DateTime.Now; lease.ExpectedReturn = DateTime.Now.AddDays(selectedBook.Book.CategorySetting.BorrowTime); lease.ActualReturn = DateTime.MinValue; lease.User = _usersRepository.GetById(userID); lease.Copy = _booksRepository.GetById(selectedBook.Id); lease.Fine = new DataInterface.Entities.Fine(); lease.Fine.Paid = false; lease.Fine.Amount = selectedBook.Book.CategorySetting.FinePerTardinessDay; selectedBook.Available = false; _leasesRepository.Save(lease); if (lease.Copy.Id == selectedBook.Id && lease.User.Id == user.Id) { MessageBox.Show("Book Borrowed"); return; } } else { var reserved = new DataInterface.Entities.Reservation(); reserved.ReservedBy = _usersRepository.GetById(userID); reserved.ReservedCopy = _booksRepository.GetById(selectedBook.Id); reserved.ReservationTime = DateTime.Now; _reservationsRepository.Save(reserved); MessageBox.Show("Book Reserved"); return; } } else { MessageBox.Show("No user Selected"); return; } if (allLease != null && oneLease != null) { foreach (var lease in allLease) { foreach (var onelease in oneLease) { if (lease.Copy.Id == book.Id && lease.User.Id == user.Id && onelease.ActualReturn == DateTime.MinValue) { MessageBox.Show("You already borrowed this book"); return; } } } } if (allReserved != null) { foreach (var reseved in allReserved) { if (reseved.ReservedCopy.Id == selectedBook.Id && reseved.ReservedBy.Id == user.Id) { MessageBox.Show("You already reserved this book"); return; } else if (reseved.ReservedCopy.Id == selectedBook.Id && reseved.ReservedBy.Id != user.Id) { MessageBox.Show("You cannot reserved this book\n Because is already reserved by other user"); return; } } } if (selectedBook.Id != -1) { if (selectedBook.Available) { var lease = new DataInterface.Entities.Lease(1, DateTime.Now, DateTime.Now.AddDays(14.0), DateTime.MinValue, _usersRepository.GetById(userID), _booksRepository.GetById(selectedBook.Id), new DataInterface.Entities.Fine()); selectedBook.Available = false; _leasesRepository.Save(lease); MessageBox.Show("Book Borrowed"); } else { var reserved = new DataInterface.Entities.Reservation(); reserved.ReservedBy = _usersRepository.GetById(userID); reserved.ReservedCopy = _booksRepository.GetById(selectedBook.Id); reserved.ReservationTime = DateTime.Now; _reservationsRepository.Save(reserved); MessageBox.Show("Book Reserved"); } } else { MessageBox.Show("No user Selected"); } }
private void ChangeCopyState(DataInterface.Entities.User selectedUser, bool isRegistered) { var userReservedBooks = _reservationsRepository.GetByQuery(x => x.ReservedBy.Id == selectedUser.Id); var allLease = _leasesRepository.GetAll(); if (allLease != null) { foreach (var leasedCopy in allLease) { if (userReservedBooks.Count() != 0) { foreach (var reseved in userReservedBooks) { if (reseved != null) { if (!isRegistered) { if (leasedCopy.Copy.Id == reseved.ReservedCopy.Id && leasedCopy.ActualReturn != DateTime.MinValue && leasedCopy.Copy.Available) { if (reseved.ReservedBy.Id == selectedUser.Id) { //var reservToLease = new DataInterface.Entities.Lease(1, DateTime.Now, DateTime.Now.AddDays(14.0), DateTime.MinValue, _usersRepository.GetById(reseved.ReservedBy.Id), _bookCopiesRepository.GetById(id), new DataInterface.Entities.Fine()); var reservToLease = new DataInterface.Entities.Lease(); reservToLease.StartDate = DateTime.Now; reservToLease.ExpectedReturn = DateTime.Now.AddDays(reseved.ReservedCopy.Book.CategorySetting != null ? reseved.ReservedCopy.Book.CategorySetting.BorrowTime : 14); reservToLease.ActualReturn = DateTime.MinValue; reservToLease.User = _usersRepository.GetById(reseved.ReservedBy.Id); reservToLease.Copy = _bookCopiesRepository.GetById(reseved.ReservedCopy.Id); reservToLease.Copy.Available = false; reservToLease.Fine = new DataInterface.Entities.Fine(); reservToLease.Fine.Paid = false; reservToLease.Fine.Amount = reseved.ReservedCopy.Book.CategorySetting != null ? reseved.ReservedCopy.Book.CategorySetting.FinePerTardinessDay : 1.0; _leasesRepository.Save(reservToLease); _reservationsRepository.DeleteById(reseved.Id); MessageBox.Show("All your reserved copy, are now borrowed by you"); return; } } } } } } } } if (selectedUser.IsRegistered == false && isRegistered == true) { List<int> leaseToDelete = new List<int>(); List<int> reservationToDelete = new List<int>(); if (allLease != null) { foreach (var leasedCopy in allLease) { if (leasedCopy.User.Id == selectedUser.Id) { leaseToDelete.Add(leasedCopy.Id); leasedCopy.Copy.Available = true; } } foreach (var toDelete in leaseToDelete) { _leasesRepository.DeleteById(toDelete); } } if (userReservedBooks.Count() != 0) { foreach (var reseved in userReservedBooks) { if (reseved.ReservedBy.Id == selectedUser.Id) reservationToDelete.Add(reseved.Id); } foreach (var toDelete in reservationToDelete) { _reservationsRepository.DeleteById(toDelete); } } } }
private void ReturnBook_Click(object sender, EventArgs eventArgs) { var select = (BorrowedBookCopies.SelectedItems.Count != 0) ? BorrowedBookCopies.SelectedItems[0].SubItems[6].Text : null; if (select != null) { // var id = Convert.ToInt32(BorrowedBookCopies. Rows[BookCopiesDataGrid.SelectedRows[0].Index].Cells[0].Value.ToString()); int id = Convert.ToInt16(select); var selectedCopy = _bookCopiesRepository.GetById(id); var actuallLease = _leasesRepository.GetByQuery(x => x.Copy.Id == id); var actuallReserved = _reservationsRepository.GetByQuery(x => x.ReservedCopy.Id == id); foreach (var lease in actuallLease) { if (lease.ActualReturn == DateTime.MinValue) { //add return date lease.ActualReturn = DateTime.Now; lease.Copy.Available = true; if (actuallReserved.Count() != 0) { foreach (var reseved in actuallReserved) { if (reseved != null && reseved.ReservedBy.IsRegistered) { //var reservToLease = new DataInterface.Entities.Lease(1, DateTime.Now, DateTime.Now.AddDays(14.0), DateTime.MinValue, _usersRepository.GetById(reseved.ReservedBy.Id), _bookCopiesRepository.GetById(id), new DataInterface.Entities.Fine()); var reservToLease = new DataInterface.Entities.Lease(); reservToLease.StartDate = DateTime.Now; reservToLease.ExpectedReturn = DateTime.Now.AddDays(reseved.ReservedCopy.Book.CategorySetting != null ? reseved.ReservedCopy.Book.CategorySetting.BorrowTime : 14); reservToLease.ActualReturn = DateTime.MinValue; reservToLease.User = _usersRepository.GetById(reseved.ReservedBy.Id); reservToLease.Copy = _bookCopiesRepository.GetById(id); reservToLease.Fine = new DataInterface.Entities.Fine(); reservToLease.Fine.Paid = false; reservToLease.Fine.Amount = selectedCopy.Book.CategorySetting != null ? selectedCopy.Book.CategorySetting.FinePerTardinessDay : 1.0; lease.Copy.Available = false; _leasesRepository.Save(reservToLease); _reservationsRepository.DeleteById(reseved.Id); MessageBox.Show("Copy returned"); return; } } } } } MessageBox.Show("Copy returned"); } else MessageBox.Show("First you must select copy to return"); }
public void Borrow_Click(object sender, EventArgs e) { if (BookCopiesDataGrid.SelectedRows.Count <= 0) return; var id = Convert.ToInt32(BookCopiesDataGrid.Rows[BookCopiesDataGrid.SelectedRows[0].Index].Cells[0].Value.ToString()); var selectedBook = _bookCopiesRepository.GetById(id); int userID = GetUserId(); if (userID == -1) return; var book = _bookCopiesRepository.GetById(id); var user = _usersRepository.GetById(userID); var allLease = _leasesRepository.GetAll(); var allReserved = _reservationsRepository.GetAll(); var oneLease = _leasesRepository.GetByQuery(x => x.Copy.Id == book.Id).Where(x => x.User.Id == user.Id); var oneReserved = _reservationsRepository.GetByQuery(x => x.ReservedCopy.Id == book.Id).Where(x => x.ReservedBy.Id == user.Id); if (allLease != null && oneLease != null) { foreach (var lease in allLease) { foreach (var onelease in oneLease) { if (lease.Copy.Id == book.Id && lease.User.Id == user.Id && onelease.ActualReturn == DateTime.MinValue) { MessageBox.Show("You already borrowed this copy"); return; } } } } if (allReserved != null) { foreach (var reseved in allReserved) { if (reseved.ReservedCopy.Id == book.Id && reseved.ReservedBy.Id == user.Id) { MessageBox.Show("You already reserved this copy"); return; } else if (reseved.ReservedCopy.Id == book.Id && reseved.ReservedBy.Id != user.Id && reseved.ReservedBy.IsRegistered==true) { MessageBox.Show("You cannot reserved this copy\n Because is already reserved by other user"); return; } } } if (id != -1) { if (user.IsRegistered) { if (selectedBook.Available) { var userr = _usersRepository.GetById(userID); Debug.WriteLine(userr.Name); var lease = new DataInterface.Entities.Lease(); lease.StartDate = DateTime.Now; lease.ExpectedReturn = DateTime.Now.AddDays(selectedBook.Book.CategorySetting != null ? selectedBook.Book.CategorySetting.BorrowTime : 14); lease.ActualReturn = DateTime.MinValue; lease.User = _usersRepository.GetById(userID); lease.Copy = _bookCopiesRepository.GetById(id); lease.Fine = new Fine(); lease.Fine.Paid = false; lease.Fine.Amount = selectedBook.Book.CategorySetting != null ? selectedBook.Book.CategorySetting.FinePerTardinessDay : 1.0; selectedBook.Available = false; _leasesRepository.Save(lease); MessageBox.Show("Copy Borrowed"); } else { var reserved = new Reservation(); reserved.ReservedBy = _usersRepository.GetById(userID); reserved.ReservedCopy = _bookCopiesRepository.GetById(id); reserved.ReservationTime = DateTime.Now; _reservationsRepository.Save(reserved); MessageBox.Show("Copy Reserved"); } } else { if (selectedBook.Available) { var reserved = new Reservation(); reserved.ReservedBy = _usersRepository.GetById(userID); reserved.ReservedCopy = _bookCopiesRepository.GetById(id); reserved.ReservationTime = DateTime.Now; _reservationsRepository.Save(reserved); MessageBox.Show("Copy Reserved"); return; } else { MessageBox.Show("You cannot reserved this copy"); return; } } } else { MessageBox.Show("No user Selected"); } }