예제 #1
0
        private void butSelExecBases_Click(object sender, EventArgs e)
        {
            if (ExecIsBusy)
            {
                labelProgress.Text = "Подождите окончания выполнения запроса.";
                return;
            }
            var bases = new List <string>();

            labelProgress.Text = "";
            foreach (DataGridViewCell cell in dataGridView.SelectedCells)
            {
                CompareObject cellCO = cell.Tag as CompareObject;
                if (cellCO == null)
                {
                    continue;
                }
                bases.AddRange(cellCO.Bases.Keys.Where(b => !bases.Any(bs => bs == b)));
            }

            if (bases.Count == 0)
            {
                return;
            }
            var basesString = bases.OrderBy(i => i).Aggregate("", (s, i) => (s == "" ? "" : s + ", ") + i);

            labelProgress.Text = "На вкладке Применить установлена цель: " + basesString;
            //labelExecStat.Text = "Отмечены базы: " + basesString;
            gridBasesExec.FillBases(bases);
        }
예제 #2
0
        private void ActionDoubleClick(bool openFile, bool openFolder = false, bool copyBuffer = false, bool isAlter = false)
        {
            var cell = dataGridView.CurrentCell;

            if (cell == null)
            {
                return;
            }
            string SQLName = cell.OwningRow.Tag as string;

            if (SQLName == null)
            {
                return;
            }
            CompareObject cellCO = cell.Tag as CompareObject;

            if (cellCO == null)
            {
                var obj = Comp.CompareResult[SQLName][0].FirstObject;
                var fn  = FindSVNFileBySQLObject(obj);
                if (string.IsNullOrWhiteSpace(fn))
                {
                    return;
                }

                if (copyBuffer)
                {
                    Clipboard.SetDataObject(File.ReadAllText(fn));
                }
                else
                if (openFolder)
                {
                    Process.Start(new ProcessStartInfo("explorer.exe", " /select, \"" + fn + "\""));
                }
                else
                if (openFile)
                {
                    Process.Start(fn);
                }
                else
                {
                    if (ExecIsBusy)
                    {
                        labelProgress.Text = "Подождите окончания выполнения запроса.";
                    }
                    else
                    {
                        SetTbExecText(File.ReadAllText(fn), obj, isAlter);
                        labelProgress.Text = "Текст во вкладке Применить: " + obj.SQLName + "  (с репозитория)";
                    }
                }

                /*
                 * //выделение для строки
                 * dataGridView.ClearSelection();
                 * foreach (DataGridViewCell c in cell.OwningRow.Cells) c.Selected = true;
                 */
            }
            else
            {
                //для ячейки
                var obj = cellCO.Bases.Values.First();


                if (copyBuffer)
                {
                    Clipboard.SetDataObject(obj.Source);
                }
                else
                if (openFolder)
                {
                    var fn = Comp.SaveSQLObject(obj, cellCO.BasesString);

                    Process.Start(new ProcessStartInfo("explorer.exe", " /select, \"" + fn + "\""));
                }
                else
                if (openFile)
                {
                    var fn = Comp.SaveSQLObject(obj, cellCO.BasesString);

                    Process.Start(fn);
                }
                else
                {
                    if (ExecIsBusy)
                    {
                        labelProgress.Text = "Подождите окончания выполнения запроса.";
                    }
                    else
                    {
                        SetTbExecText(obj.Source, obj, isAlter);
                        labelProgress.Text = "Текст во вкладке Применить: " + obj.SQLName + "  (вариант с" + cellCO.BasesString + ")";
                    }
                }
            }
        }