private void FPetraUtilsObject_DataSaved_NewDonorWarning(object Sender, TDataSavedEventArgs e) { // if data successfully saved then look for new donors and warn the user if (e.Success && (FGiftDetailTable != null) && FNewDonorWarning) { // this list contains a list of all new donors that were entered onto form List <Int64> NewDonorsList = ucoTransactions.NewDonorsList; foreach (GiftBatchTDSAGiftDetailRow Row in FGiftDetailTable.Rows) { // check changed data is either added or modified and that it is by a new donor if (((Row.RowState == DataRowState.Added) || (Row.RowState == DataRowState.Modified)) && (!Row.IsDonorKeyNull() && NewDonorsList.Contains(Row.DonorKey))) { if (MessageBox.Show(string.Format(Catalog.GetString( "{0} ({1}) is a new Donor.{2}Do you want to add subscriptions for them?{2}" + "(Note: this message can be disabled in the 'File' menu by unselecting the 'New Donor Warning' item.)"), Row.DonorName, Row.DonorKey, "\n\n"), Catalog.GetString("New Donor"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // Open the donor's Edit screen so subscriptions can be added TFrmPartnerEdit frm = new TFrmPartnerEdit(FPetraUtilsObject.GetForm()); frm.SetParameters(TScreenMode.smEdit, Row.DonorKey, TPartnerEditTabPageEnum.petpSubscriptions); frm.ShowDialog(); } // ensures message is not displayed twice for one new donor with two gifts NewDonorsList.Remove(Row.DonorKey); } } ucoTransactions.NewDonorsList.Clear(); } }