Ejemplo n.º 1
0
        private void refreshGrid(bool resetData)
        {
            if (resetData)
            {
                SelectedWorkspace.ComparedData = null;
            }

            gridMain.Columns.Clear();

            string overrideKeyField = null;

            if (!string.IsNullOrEmpty(cboOverrideKeyField.Text))
            {
                overrideKeyField = cboOverrideKeyField.Text;
            }

            var dataHelper = new DataHelper();
            var bw         = new BackgroundWorker();

            bw.DoWork += delegate(object sender2, DoWorkEventArgs e2)
            {
                dataHelper.CompareData(SelectedWorkspace, bw, true, overrideKeyField);
            };

            var prog = new PaJaMa.WinControls.WinProgressBox();

            prog.Cancel += delegate(object sender2, EventArgs e2)
            {
                dataHelper.Cancel();
            };

            prog.Show(bw, "Populating data...", allowCancel: true, progressBarStyle: ProgressBarStyle.Marquee);

            if (SelectedWorkspace.ComparedData == null)
            {
                return;
            }

            setData();

            //gridMain.DataSource = SelectedWorkspace.ComparedData;

            foreach (DataGridViewColumn col in gridMain.Columns)
            {
                col.ReadOnly = true;
            }

            var selectCol = new DataGridViewCheckBoxColumn();

            selectCol.Name = "Select";
            gridMain.Columns.Insert(0, selectCol);
        }
Ejemplo n.º 2
0
        private void btnDataDifferences_Click(object sender, EventArgs e)
        {
            var bw          = new BackgroundWorker();
            var tws         = (gridTables.DataSource as BindingList <TableWorkspace>).Where(tw => tw.SelectTableForData);
            var differences = new List <DataDifference>();
            var prog        = new PaJaMa.WinControls.WinProgressBox();
            var dataHelper  = new DataHelper();

            prog.Cancel += delegate(object sender2, EventArgs e2)
            {
                dataHelper.Cancel();
            };
            bw.DoWork += delegate(object sender2, DoWorkEventArgs e2)
            {
                foreach (var tw in tws)
                {
                    if (bw.CancellationPending)
                    {
                        return;
                    }
                    var diffs = dataHelper.GetDataDifferences(tw, bw);
                    if (diffs != null)
                    {
                        differences.Add(diffs);
                    }
                }
            };

            prog.Show(bw, allowCancel: true);

            foreach (var diff in differences)
            {
                var row = gridTables.Rows.OfType <DataGridViewRow>().First(r => r.DataBoundItem.Equals(diff.TableWorkspace));
                row.Cells[DataDetails.Name].Value = string.Format("{0}/{1}/{2}", diff.Differences, diff.SourceOnly, diff.TargetOnly);
            }
        }