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);
                }
            }
        }