Ejemplo n.º 1
0
        /// <summary>
        /// Drop table from Db
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public async void DropTableHandler(object sender, TableModel e)
        {
            var dialog = await this.ShowMessageAsync("Drop table", $"Do you really want to drop {e.Title} ? Changes can't be undone!",
                                                     MessageDialogStyle.AffirmativeAndNegative);

            if (dialog == MessageDialogResult.Affirmative)
            {
                var res = _updater.DropTable(e);

                if (res != null)
                {
                    await this.ShowMessageAsync("Drop table", res);

                    Output.WriteLine(OutputPanelListener.PrepareException(res));
                    return;
                }

                DatabaseModelDesigner designer;
                if (TryGetSelectedDesigner(out designer))
                {
                    var facade = new DiagramFacade(designer);
                    facade.RemoveTable(e);
                }
                await DatabaseConnectionSidebar.RefreshTreeData();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Open saved diagram
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="diagramModel">Diagram for opening</param>
        private async void DatabaseConnectionSidebarOnAddDiagram(object sender, DiagramModel diagramModel)
        {
            Mouse.OverrideCursor = Cursors.Wait;
            DiagramFacade.CreateNewDiagram(this, diagramModel.Name);

            LayoutAnchorable panel;

            if (TryGetSelectedPanel(out panel))
            {
                DatabaseModelDesigner designer;
                if (TryGetSelectedDesigner(out designer))
                {
                    panel.IsActiveChanged -= AnchorableDesignerActiveChangedHandler;
                    var facade = new DiagramFacade(designer.ViewModel);
                    try
                    {
                        await facade.LoadDiagram(designer.ModelDesignerCanvas, XDocument.Parse(diagramModel.Xml));
                    }
                    catch (Exception exception) when(exception is SqlException || exception is OracleException)
                    {
                        Output.WriteLine(OutputPanelListener.PrepareException(exception.Message));
                    }

                    panel.IsActiveChanged += AnchorableDesignerActiveChangedHandler;
                }
            }
            await DatabaseConnectionSidebar.RefreshTreeData();

            Mouse.OverrideCursor = null;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Save diagram to DB and refresh treeview in panel
        /// </summary>
        /// <param name="vm"></param>
        private async void SaveDiagramAndRefresh(DatabaseModelDesignerViewModel vm)
        {
            var facade = new DiagramFacade(vm);
            var res    = facade.SaveDiagram();

            Output.WriteLine(DiagramFacade.DiagramSaved);
            await DatabaseConnectionSidebar.RefreshTreeData();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Rename selected table and refresh treeview
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public async void RenameTableHandler(object sender, TableModel e)
        {
            var originalName = e.Title;
            var dialog       = new TableNameDialog()
            {
                Model = e,
                Owner = this
            };

            dialog.ShowDialog();

            string res = _updater.RenameTable(originalName, e);

            if (res != null)
            {
                await this.ShowMessageAsync("Rename table", res);

                Output.WriteLine(OutputPanelListener.PrepareException(res));
                return;
            }

            await DatabaseConnectionSidebar.RefreshTreeData();
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Refresh treeview after table creation
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public async void CreateTableHandler(object sender, System.EventArgs e)
 {
     await DatabaseConnectionSidebar.RefreshTreeData();
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Delete saved diagram
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="diagramModel">Diagram for deletion</param>
 private async void DatabaseConnectionSidebarOnDropDiagram(object sender, DiagramModel diagramModel)
 {
     var ctx = new DatabaseContext(SessionProvider.Instance.ConnectionType);
     var res = ctx.DeleteDiagram(diagramModel.Name);
     await DatabaseConnectionSidebar.RefreshTreeData();
 }