Ejemplo n.º 1
0
        public static async Task <string> TryGetStringAsync(string title, string defaultValue = "", bool selectAll          = true,
                                                            bool startWithFindDialog          = false, bool forceForeground = true, bool containsJson = false, bool throwOnCancel = false)
        {
            await Task.Yield(); // This makes sure we are not blocking the hook procedure.

            using (var form = new GetStringForm(title, defaultValue, selectAll, startWithFindDialog, forceForeground, containsJson))
            {
                form.ShowDialog();
                if (!form.TryGetValue(out var value) && throwOnCancel)
                {
                    throw new ArgumentException("Aborted.");
                }
                return(value);
            }
        }
Ejemplo n.º 2
0
        private void создатьНовуюФормуToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            GetStringForm gsf = new GetStringForm("Создание формы", "Введите название формы");

            if (gsf.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            if (metaDbContainer.ViewSet.Any(x => x.Name == gsf.Value))
            {
                MessageBox.Show("ФОрма с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                создатьНовуюФормуToolStripMenuItem1_Click(null, null);
                return;
            }

            ViewForm childForm = new ViewForm(metaDbContainer, dbConnection, gsf.Value);

            childForm.MdiParent = this;
            childForm.Show();
        }
Ejemplo n.º 3
0
        private void создатьНовыйЗапросToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            //На случай если попытаются открыть запрос без таблиц
            try
            {
                GetStringForm gsf = new GetStringForm("Создание запроса", "Введите название запроса");
                if (gsf.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                if (metaDbContainer.QuerySet.Any(x => x.Name == gsf.Value))
                {
                    MessageBox.Show("Запрос с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    создатьНовыйЗапросToolStripMenuItem1_Click(null, null);
                    return;
                }

                QueriesForm childForm = new QueriesForm(metaDbContainer, dbConnection, gsf.Value);
                childForm.MdiParent = this;
                childForm.Show();
            }
            catch (Exception a) { MessageBox.Show("Нет таблиц для запроса"); }
        }
Ejemplo n.º 4
0
        private void переименоватьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ToolStrip ts = ((ToolStripMenuItem)sender).GetCurrentParent();

            string   name = ts.Tag.ToString().Substring(6);
            TreeNode node = MainTreeView.Nodes.Cast <TreeNode>()
                            .SelectMany(x => x.Nodes.Cast <TreeNode>())
                            .First(t => t.Tag.Equals($"{ts.Tag}"));

            GetStringForm gst = new GetStringForm("Введите новое имя", "Переименование");

            gst.SetValue(node.Text);

            if (gst.ShowDialog() == DialogResult.Cancel || gst.Value == node.Text)
            {
                return;
            }

            string newName = gst.Value;

            switch (ts.Tag.ToString().Substring(0, 6))
            {
            case "[tabl]":
            {
                if (metaDbContainer.TableSet.Any(x => x.Name == newName))
                {
                    MessageBox.Show("Таблица с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    переименоватьToolStripMenuItem_Click(sender, null);
                }

                var t = metaDbContainer.TableSet.First(x => x.RealName == name);
                t.Name = newName;
                metaDbContainer.Entry(t).State = EntityState.Modified;
                metaDbContainer.SaveChanges();
                break;
            }

            case "[quer]":
            {
                if (metaDbContainer.QuerySet.Any(x => x.Name == newName))
                {
                    MessageBox.Show("Запрос с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    переименоватьToolStripMenuItem_Click(sender, null);
                }
                node.Tag = node.Tag.ToString().Substring(0, 6) + newName;

                var q = metaDbContainer.QuerySet.First(x => x.Name == name);
                q.Name = newName;
                metaDbContainer.Entry(q).State = EntityState.Modified;
                metaDbContainer.SaveChanges();
                break;
            }

            case "[view]":
            {
                if (metaDbContainer.ViewSet.Any(x => x.Name == newName))
                {
                    MessageBox.Show("Форма с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    переименоватьToolStripMenuItem_Click(sender, null);
                }

                var v = metaDbContainer.ViewSet.First(x => x.Name == name);
                v.Name = newName;
                metaDbContainer.Entry(v).State = EntityState.Modified;
                metaDbContainer.SaveChanges();
                node.Tag = node.Tag.ToString().Substring(0, 6) + newName;


                break;
            }

            case "[repo]":
            {
                if (metaDbContainer.ReportSet.Any(x => x.Name == newName))
                {
                    MessageBox.Show("Отчёт с таким именем уже существует", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    переименоватьToolStripMenuItem_Click(sender, null);
                }

                var r = metaDbContainer.ReportSet.First(x => x.Name == name);
                r.Name = newName;
                metaDbContainer.Entry(r).State = EntityState.Modified;
                metaDbContainer.SaveChanges();
                break;
            }
            }

            node.Text = newName;
        }