Beispiel #1
0
        private void promptToDelete()
        {
            if (lvValues.SelectedItems.Count > 0)
            {
                if (DialogResult.No == MessageBox.Show(this,
                                                       getDisplayMember("promptToDelete{body}", "Are you sure you want to delete these values?"),
                                                       getDisplayMember("promptToDelete{title}", "Delete Values?"), MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                {
                    return;
                }
                else
                {
                    var delcount  = 0;
                    var skipcount = 0;
                    var dtTables  = AdminProxy.ListTablesAndDataviewsByCodeGroup(txtName.Text).Tables["list_tables_and_dataviews_by_code_group"];
                    var tables    = new List <string>();
                    var fields    = new List <string>();
                    foreach (DataRow dr in dtTables.Rows)
                    {
                        var tbl = dr["table_name"].ToString();
                        if (!String.IsNullOrEmpty(tbl))
                        {
                            tables.Add(tbl);
                            fields.Add(dr["field_name"].ToString());
                        }
                    }
                    foreach (ListViewItem lvi in lvValues.SelectedItems)
                    {
                        var rowcount = 0;
                        for (var i = 0; i < tables.Count; i++)
                        {
                            rowcount += AdminProxy.GetCodeValueUsageCount(lvi.Text, tables[i], fields[i]);
                        }

                        if (rowcount > 0)
                        {
                            skipcount++;
                            MessageBox.Show(this,
                                            getDisplayMember("promptToDelete{rowcount_body}", "Cannot delete value '{0}'.  {1} rows of data are currently using it.", lvi.Text, rowcount.ToString()),
                                            getDisplayMember("promptToDelete{rowcount_title}", "Value In Use"), MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            AdminProxy.DeleteCodeValue(Toolkit.ToInt32(lvi.Tag, -1), txtName.Text);
                            delcount++;
                        }
                    }
                    if (delcount > 0)
                    {
                        RefreshData();
                    }
                    MainFormUpdateStatus(getDisplayMember("promptToDelete{deleted}", "Deleted {0} code values, skipped {1}", delcount.ToString(), skipcount.ToString()), true);
                }
            }
        }