示例#1
0
        private void promptToDelete()
        {
            if (lvPerms.SelectedItems.Count > 0)
            {
                var total = 0;
                var fmb   = new frmMessageBox();
                fmb.Text        = "Delete Permission(s)?";
                fmb.btnYes.Text = "&Delete";
                fmb.btnNo.Text  = "&Cancel";

                var list = new List <string>();
                foreach (ListViewItem lvi in lvPerms.SelectedItems)
                {
                    list.Add(lvi.Text);
                }


                fmb.txtMessage.Text = "Are you sure you want to delete the following permission(s)?\r\n" + String.Join("\r\n", list.ToArray());
                if (DialogResult.Yes == fmb.ShowDialog(this))
                {
                    foreach (ListViewItem lvi in lvPerms.SelectedItems)
                    {
                        var id = Toolkit.ToInt32(lvi.Tag, -1);
                        try {
                            AdminProxy.DeletePermission(id, false);
                            total++;
                        } catch (Exception ex) {
                            if (ex.Message.Contains("are referencing"))
                            {
                                fmb.txtMessage.Text = ex.Message + "\r\n\r\nDo you want to remove the reference(s) and continue deleting " + lvi.Text + "?";
                                fmb.Text            = "Remove References and Continue Delete?";
                                fmb.btnYes.Text     = "Continue &Deleting";
                                fmb.btnNo.Text      = "&Cancel";
                                if (DialogResult.Yes == fmb.ShowDialog(this))
                                {
                                    AdminProxy.DeletePermission(id, true);
                                    total++;
                                }
                                else
                                {
                                    // nothing to do
                                }
                            }
                            else
                            {
                                throw;
                            }
                        }
                    }
                    MainFormRefreshData();
                    MainFormUpdateStatus(getDisplayMember("promptToDelete{done}", "Deleted {0} permission(s)", total.ToString("###,##0")), true);
                }



                //if (DialogResult.Yes == MessageBox.Show(this, "Are you sure you want to delete permission(s)?", "Delete Permission(s)?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) {
                //    foreach (ListViewItem lvi in lvPerms.SelectedItems) {
                //        var id = Toolkit.ToInt32(lvi.Tag, -1);
                //        try {
                //            AdminProxy.DeletePermission(id, false);
                //        } catch (InvalidOperationException ioe) {
                //        }
                //    }
                //    MainFormUpdateStatus("Deleted " + lvPerms.SelectedItems.Count + " permissions.", true);
                //    RefreshData();
                //}
            }
        }