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); } } }
public override void RefreshData() { initDropDowns(); dgvLanguages.AutoGenerateColumns = false; var filled = false; _totalReferenced = 0; var ds = AdminProxy.ListCodeValues(GroupName, ID, null); _dtLangs = ds.Tables["list_code_value_langs"]; dgvLanguages.DataSource = _dtLangs; _rtlRows = new List <int>(); for (var i = 0; i < _dtLangs.Rows.Count; i++) { var drLang = _dtLangs.Rows[i]; if (drLang["script_direction"].ToString().ToUpper() == "RTL") { _rtlRows.Add(i); } } if (ID > -1) { var dt = ds.Tables["list_code_values"]; if (dt.Rows.Count > 0) { var dr = dt.Rows[0]; txtValue.Text = dr["value_member"].ToString(); var dtRef = AdminProxy.ListTablesAndDataviewsByCodeGroup(GroupName).Tables["list_tables_and_dataviews_by_code_group"]; lvReferencedBy.Items.Clear(); foreach (DataRow drR in dtRef.Rows) { var tbl = drR["table_name"].ToString(); var fld = drR["field_name"].ToString(); if (!String.IsNullOrEmpty(tbl)) { var lvi = new ListViewItem(tbl); lvi.Tag = tbl + "." + fld; lvi.SubItems.Add(fld); // todo: lookup # of rows with that value var count = AdminProxy.GetCodeValueUsageCount(txtValue.Text, tbl, fld); _totalReferenced += count; lvi.SubItems.Add(count.ToString("###,###,##0")); lvReferencedBy.Items.Add(lvi); } } filled = true; } } if (!filled) { txtValue.Text = ""; } MarkClean(); syncGui(); }