private void promptToDelete() { if (lvDataviews.SelectedItems.Count > 0) { var total = 0; var fmb = new frmMessageBox(); fmb.Text = "Delete Dataview(s)?"; fmb.btnYes.Text = "&Delete"; fmb.btnNo.Text = "&Cancel"; var list = new List <string>(); foreach (ListViewItem lvi in lvDataviews.SelectedItems) { list.Add(lvi.Text); } fmb.txtMessage.Text = "Are you sure you want to delete the following dataview(s)?\r\n" + String.Join("\r\n", list.ToArray()); if (DialogResult.Yes == fmb.ShowDialog(this)) { foreach (ListViewItem lvi in lvDataviews.SelectedItems) { try { AdminProxy.DeleteDataViewDefinition(lvi.Tag + string.Empty, false); total++; } catch (Exception ex) { if (ex.Message.Contains("following are referencing")) { fmb.txtMessage.Text = ex.Message + "\r\n\r\nDo you want to remove the reference(s) and continue deleting " + lvi.Tag + "?"; fmb.Text = "Remove References and Continue Delete?"; fmb.btnYes.Text = "Continue &Deleting"; fmb.btnNo.Text = "&Cancel"; if (DialogResult.Yes == fmb.ShowDialog(this)) { AdminProxy.DeleteDataViewDefinition(lvi.Tag + string.Empty, true); total++; } else { // nothing to do } } else if (ex.Message.Contains("permission(s) exist")) { fmb.txtMessage.Text = ex.Message + "\r\n\r\nDo you want to remove the permission(s) and continue deleting " + lvi.Tag + "?"; fmb.Text = "Remove Permissions and Continue Delete?"; fmb.btnYes.Text = "Continue &Deleting"; fmb.btnNo.Text = "&Cancel"; if (DialogResult.Yes == fmb.ShowDialog(this)) { AdminProxy.DeleteDataViewDefinition(lvi.Tag + string.Empty, true); total++; } else { // nothing to do } } else if (ex.Message.Contains("required by the system")) { MessageBox.Show(this, getDisplayMember("promptToDelete{systemrequired_body}", "{0}\r\n\r\nYou must edit the dataview and remove it from the System category before it can be deleted.", ex.Message), getDisplayMember("promptToDelete{systemrequired_title}", "System-Required Dataview"), MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { throw; } } } MainFormRefreshData(); MainFormUpdateStatus(getDisplayMember("promptToDelete{deleted}", "Deleted {0} dataview(s).", total.ToString("###,##0")), true); } } }