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;
        }
예제 #2
0
        // 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));
        }