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);
                }
            }
        }
Beispiel #2
0
        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();
        }