/// <summary> /// Accept the changes and and close this form /// </summary> /// <remarks>If any transaction group or the active transaction is still open /// give the user the option to either commit them or roll them back first.</remarks> /// <param name="sender"></param> /// <param name="e"></param> private void okButton_Click(object sender, EventArgs e) { //if any transaction or transaction group is not finished, notify user to deal with it if (null != m_transaction || null != m_transactionGroup) { TaskDialogResult dialogResult = TaskDialog.Show("Warning", "Some transaction groups or the active transaction is not committed." + " Choose Yes to commit them, or No to roll them back.", TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.No | TaskDialogCommonButtons.Cancel); if (TaskDialogResult.Cancel == dialogResult) { return; } else if (TaskDialogResult.Yes == dialogResult) { if (m_transaction != null && (m_transaction.GetStatus() == TransactionStatus.Started)) { m_transaction.Commit(); } HandleNestedTransactionGroups(OperationType.CommitTransactionGroup); } else { if (m_transaction != null && (m_transaction.GetStatus() == TransactionStatus.Started)) { m_transaction.RollBack(); } HandleNestedTransactionGroups(OperationType.RollbackTransactionGroup); } } // silently commit the main (hidden) transaction group if ((null != m_mainTtransactionGroup) && (m_mainTtransactionGroup.GetStatus() == TransactionStatus.Started)) { m_mainTtransactionGroup.SetName("SDK Transaction Sample"); m_mainTtransactionGroup.Assimilate(); } this.DialogResult = DialogResult.OK; this.Close(); }