private void ReturnMovie(string senderName) { // create an event listener to refresh info on database updates DatabaseOperations.DataUpdateComplete += UpdateAllData; // Dummy variable to stop intellisense from complaining about possible null reference var rentedItem = new RentedMovieModel(0, 0, "dummy", "name", "", DateTime.MinValue, DateTime.MinValue); if (senderName == "btnReturnMovieViaCust") { rentedItem = CustRentCurrent.SelectedItem as RentedMovieModel; } else if (senderName == "btnReturnMovieViaRented") { rentedItem = RentedMovies.SelectedItem as RentedMovieModel; } var choice = MessageBox.Show( $"Return \"{rentedItem.MovieTitle}\"?\n\n" + $"Rented by {rentedItem.FirstName} {rentedItem.LastName}\n" + $"Rented on {rentedItem.DateIssued}", "Confirm Return", MessageBoxButton.OKCancel); if (choice == MessageBoxResult.OK) { new DatabaseOperations().ReturnMovie(rentedItem); } // since the event is static (to make it global), detach listener to avoid duplicate event triggers DatabaseOperations.DataUpdateComplete -= UpdateAllData; }
// Return a rented movie public void ReturnMovie(RentedMovieModel rentData) { string updateString = "update dbo.RentedMovies set DateReturned = GETDATE() " + "where MovieIDFK = @MovieIDFK and CustIDFK = @CustIDFK and DateRented = @DateRented"; SqlCommand updateCommand = new SqlCommand(updateString, _connection); updateCommand.Parameters.AddWithValue("@MovieIDFK", rentData.MovieId); updateCommand.Parameters.AddWithValue("@CustIDFK", rentData.CustomerId); updateCommand.Parameters.AddWithValue("@DateRented", rentData.DateIssued); _connection.Open(); updateCommand.ExecuteNonQuery(); _connection.Close(); DataUpdateEventAndSignature(nameof(ReturnMovie)); }