private void RefreshAllStoredProcedures(ObjectExplorerNode selectedFolderNode)
        {
            var database = selectedFolderNode.GetDatabaseFromNode();

            database.RemoveAllStoredProceduresNodesForDatabase(_objectExplorerDataSource);
            database.StoredProcedures.Refresh(true);
        }
Пример #2
0
        public void GenerateAlterScript(ObjectExplorerNode node)
        {
            switch (node.Data)
            {
            case UserDefinedFunction function:
            {
                GenerateFunctionScript(function, false);
                break;
            }

            case StoredProcedure storedProcedure:
            {
                GenerateStoredProcedureScript(storedProcedure, false);
                break;
            }

            case View view:
            {
                GenerateViewScript(view, false);
                break;
            }

            default:
            {
                ResultService.ResultWithNoErrors(string.Empty, string.Empty);
                break;
            }
            }
        }
        private void RefreshFolderNode(ObjectExplorerNode selectedFolderNode)
        {
            switch (selectedFolderNode.DisplayName)
            {
            case GlobalStrings.FolderTypes.StoreProcedureFolder:
                RefreshAllStoredProcedures(selectedFolderNode);
                break;

            case GlobalStrings.FolderTypes.SystemStoredProcedureFolder:
                RefreshSystemStoredProcedures(selectedFolderNode);
                break;

            case GlobalStrings.FolderTypes.FunctionsFolder:
                //TODO - Add refresh functions
                break;

            case GlobalStrings.FolderTypes.SystemDatabaseFolder:
                //TODO - Add refresh system databases
                break;

            case GlobalStrings.FolderTypes.TableFolder:
                //TODO - Add refresh tables
                break;

            case GlobalStrings.FolderTypes.ViewFolder:
                RefreshViewsForDatabase(selectedFolderNode);
                break;
            }
        }
        private void ReloadSelectedNode(ObjectExplorerNode selectedNode)
        {
            var nodeToReplace        = _objectExplorerDataSource.DataSource.FirstOrDefault(x => x.Id == selectedNode.Id);
            var indexOfNodeToReplace = _objectExplorerDataSource.DataSource.IndexOf(nodeToReplace);

            if (indexOfNodeToReplace != -1)
            {
                switch (selectedNode.Type)
                {
                case GlobalStrings.ObjectExplorerTypes.Column:
                    RefreshColumn(selectedNode, indexOfNodeToReplace);
                    break;

                case GlobalStrings.ObjectExplorerTypes.Function:
                    RefreshFunction(selectedNode, indexOfNodeToReplace);
                    break;

                case GlobalStrings.ObjectExplorerTypes.StoredProcedure:
                    RefreshStoredProcedure(selectedNode, indexOfNodeToReplace);
                    break;

                default:
                    break;
                }
            }
        }
Пример #5
0
        private static void SetHasChildrenForNode(NodeChangedEventArgs e, ObjectExplorerNode objectExplorerModel)
        {
            switch (objectExplorerModel.Type)
            {
            case GlobalStrings.ObjectExplorerTypes.Instance:
                e.Node.HasChildren = true;
                break;

            case GlobalStrings.ObjectExplorerTypes.Database:
                e.Node.HasChildren = true;
                break;

            case GlobalStrings.ObjectExplorerTypes.Folder:
                e.Node.HasChildren = true;
                break;

            case GlobalStrings.ObjectExplorerTypes.Table:
                e.Node.HasChildren = true;
                break;

            default:
                e.Node.HasChildren = false;
                break;
            }
        }
        private void RefreshViewsForDatabase(ObjectExplorerNode selectedFolderNode)
        {
            var database      = selectedFolderNode.GetDatabaseFromNode();
            var nodesToRemove = _objectExplorerDataSource.DataSource.Where(r =>
                                                                           r.Type == GlobalStrings.ObjectExplorerTypes.View &&
                                                                           r.GetDatabaseFromNode().Name == database.Name);

            _objectExplorerDataSource.RemoveListOfNodes(nodesToRemove);
            database.Views.Refresh(true);
        }
        private void RefreshSystemStoredProcedures(ObjectExplorerNode selectedFolderNode)
        {
            var database      = selectedFolderNode.GetDatabaseFromNode();
            var nodesToRemove = _objectExplorerDataSource.DataSource.Where(r =>
                                                                           r.Type == GlobalStrings.ObjectExplorerTypes.StoredProcedure &&
                                                                           r.GetDatabaseFromNode().Name == database.Name && r.ParentId == selectedFolderNode.Id).ToList();

            _objectExplorerDataSource.RemoveListOfNodes(nodesToRemove);
            database.StoredProcedures.Refresh(true);
        }
 private void RefreshColumn(ObjectExplorerNode selectedNode, int indexOfNodeToReplace)
 {
     if (selectedNode.Data is Column column)
     {
         column.Refresh();
         _objectExplorerDataSource.DataSource[indexOfNodeToReplace] = ObjectExplorerNodeFactory.CreateColumnNode(selectedNode.Id,
                                                                                                                 selectedNode.ParentId,
                                                                                                                 column);
     }
 }
 private void RefreshStoredProcedure(ObjectExplorerNode selectedNode, int indexOfNodeToReplace)
 {
     if (selectedNode.Data is StoredProcedure storedProcedure)
     {
         storedProcedure.Refresh();
         _objectExplorerDataSource.DataSource[indexOfNodeToReplace] = ObjectExplorerNodeFactory.CreateStoredProcedureNode(
             selectedNode.Id, selectedNode.ParentId,
             storedProcedure);
     }
 }
 private void RefreshFunction(ObjectExplorerNode selectedNode, int indexOfNodeToReplace)
 {
     if (selectedNode.Data is UserDefinedFunction function)
     {
         function.Refresh();
         _objectExplorerDataSource.DataSource[indexOfNodeToReplace] = ObjectExplorerNodeFactory.CreateFunctionNode(
             selectedNode.Id, selectedNode.ParentId,
             function);
     }
 }
 private static bool IsFolderForDatabase(ObjectExplorerNode node)
 {
     if (node.Type != GlobalStrings.ObjectExplorerTypes.Folder)
     {
         return(false);
     }
     return(node.DisplayName == GlobalStrings.FolderTypes.FunctionsFolder ||
            node.DisplayName == GlobalStrings.FolderTypes.StoreProcedureFolder ||
            node.DisplayName == GlobalStrings.FolderTypes.SystemStoredProcedureFolder ||
            node.DisplayName == GlobalStrings.FolderTypes.TableFolder ||
            node.DisplayName == GlobalStrings.FolderTypes.ViewFolder);
 }
 public void RefreshNode(ObjectExplorerNode selectedNode)
 {
     if (selectedNode.Type == GlobalStrings.ObjectExplorerTypes.Column ||
         selectedNode.Type == GlobalStrings.ObjectExplorerTypes.Function ||
         selectedNode.Type == GlobalStrings.ObjectExplorerTypes.StoredProcedure ||
         selectedNode.Type == GlobalStrings.ObjectExplorerTypes.Nothing)
     {
         ReloadSelectedNode(selectedNode);
     }
     else
     {
         RemoveAllChildrenNodesOfNode(selectedNode);
     }
 }
Пример #13
0
 private void LoadDataForObjectExplorerDynamically(ObjectExplorerNode selectedNode)
 {
     LoadingMode = UnboundLoadModes.BeginUnboundLoad;
     try
     {
         _dataSourceModel.GetNodes(selectedNode);
         FinishUnboundLoad();
     }
     catch (Exception e)
     {
         _dataSourceModel.CreateEmptyNode(selectedNode);
         DisplayErrorMessage(e.Message, "Error Getting Objects");
     }
 }
Пример #14
0
 /// <summary>
 /// Creates a "nothing node" that is used to represents a node where nothing is found in the object explorer. This is
 /// typically used in situations where you have errors occur retrieving nodes and need to indicate to the user that
 /// nothing was retrieved when expanding a node.
 /// </summary>
 /// <param name="emptyNodeId">The internal id of the node itself</param>
 /// <param name="parentNode">The parent node of the node that is returned</param>
 /// <returns></returns>
 public static ObjectExplorerNode CreateNothingNode(int emptyNodeId, ObjectExplorerNode parentNode)
 {
     return(new ObjectExplorerNode
     {
         ParentId = parentNode.Id,
         Id = emptyNodeId,
         InstanceName = parentNode.InstanceName,
         Type = GlobalStrings.ObjectExplorerTypes.Nothing,
         Data = null,
         DisplayName = "Nothing available",
         FullName = parentNode.FullName + " " + "Empty Child Node",
         ParentNodeName = parentNode.FullName,
         ImageIndex = 8,
         Properties = string.Empty
     });
 }
Пример #15
0
        public void GenerateSelectTopStatement(ObjectExplorerNode node)
        {
            switch (node.Data)
            {
            case Table selectedTable:
                ResultService.ResultWithNoErrors($"SELECT TOP {App.Config.NumberOfRowsForTopSelectScript} * FROM {GetFullTablePath(selectedTable)}", selectedTable.Parent.Name);
                break;

            case View selectedView:
                ResultService.ResultWithNoErrors($"SELECT TOP {App.Config.NumberOfRowsForTopSelectScript} * FROM {GetFullViewPath(selectedView)}", selectedView.Parent.Name);
                break;

            default:
                ResultService.ResultWithNoErrors(string.Empty, string.Empty);
                break;
            }
        }
Пример #16
0
        public void GenerateSelectAllStatement(ObjectExplorerNode node)
        {
            switch (node.Data)
            {
            case Table selectedTable:
                ResultService.ResultWithNoErrors($"SELECT * FROM {GetFullTablePath(selectedTable)}", selectedTable.Parent.Name);
                break;

            case View selectedView:
                ResultService.ResultWithNoErrors($"SELECT * FROM {GetFullViewPath(selectedView)}", selectedView.Parent.Name);
                break;

            default:
                ResultService.ResultWithNoErrors(string.Empty, string.Empty);
                break;
            }
        }
        private void RemoveAllChildrenNodesOfNode(ObjectExplorerNode selectedNode)
        {
            switch (selectedNode.Type)
            {
            case GlobalStrings.ObjectExplorerTypes.Instance:
                RefreshServer(selectedNode.Data as Server);
                break;

            case GlobalStrings.ObjectExplorerTypes.Database:
                RefreshDatabase(selectedNode.Data as Database);
                break;

            case GlobalStrings.ObjectExplorerTypes.Folder:
                RefreshFolderNode(selectedNode);
                break;

            case GlobalStrings.ObjectExplorerTypes.Table:
                RefreshTable(selectedNode.Data as Table);
                break;
            }
        }
Пример #18
0
        public static bool CheckCondition( )
        {
            if (HostServicesSingleton.HostServices == null || HostServicesSingleton.HostServices.ObjectExplorerService == null)
            {
                return(false);
            }

            IObjectExplorerService service = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (service == null)
            {
                return(false);
            }

            ObjectExplorerNode node = service.SelNode;

            if (node == null || node.ConnParams == null)
            {
                return(false);
            }

            return(String.IsNullOrEmpty(node.DatabaseName) ? false : true);
        }
Пример #19
0
        public static bool CheckCondition()
        {
            if (HostServicesSingleton.HostServices == null || HostServicesSingleton.HostServices.ObjectExplorerService == null)
            {
                return(false);
            }

            IObjectExplorerService service = HostServicesSingleton.HostServices.ObjectExplorerService;

            if (service == null)
            {
                return(false);
            }

            ObjectExplorerNode node = service.SelNode;

            if (node == null)
            {
                return(false);
            }

            return((node.Type == DBObjectType.UserTable || node.Type == DBObjectType.SystemTable || node.Type == DBObjectType.View) ? true : false);
        }
Пример #20
0
 /// <summary>
 /// Returns the full name of a child folder that belongs to a particular node.
 /// </summary>
 /// <param name="folderType"></param>
 /// <param name="parentNode"></param>
 /// <returns></returns>
 private static string GetFolderFullName(string folderType, ObjectExplorerNode parentNode)
 {
     return(parentNode.InstanceName + " " + folderType + " " + "folder");
 }
Пример #21
0
        public string EvalMacro(PragmaSqlMacros macro)
        {
            string        result       = String.Empty;
            ITextEditor   txtEditor    = HostServicesSingleton.HostServices.EditorServices.CurrentEditor;
            IScriptEditor scriptEditor = HostServicesSingleton.HostServices.EditorServices.CurrentScriptEditor;

            switch (macro)
            {
            case PragmaSqlMacros.Content:
                if (txtEditor != null)
                {
                    result = txtEditor.Content;
                }

                break;

            case PragmaSqlMacros.SelectedContent:
                if (txtEditor != null)
                {
                    result = txtEditor.SelectedText;
                }
                break;

            case PragmaSqlMacros.FileName:
                if (txtEditor != null)
                {
                    result = txtEditor.FileName;
                }
                break;

            case PragmaSqlMacros.ObjectName:
                if (scriptEditor != null)
                {
                    result = scriptEditor.ObjectName;
                }
                break;

            case PragmaSqlMacros.ObjectNames:
                if (scriptEditor != null)
                {
                    IList <string> names = scriptEditor.ObjectNames;
                    string         comma = String.Empty;
                    foreach (string s in names)
                    {
                        result += (String.IsNullOrEmpty(comma) ? String.Empty : comma) + s;
                        comma   = ";";
                    }
                }
                break;

            case PragmaSqlMacros.WordAtCursor:
                if (txtEditor != null)
                {
                    result = txtEditor.WordAtCursor;
                }
                break;

            case PragmaSqlMacros.Connection:
                if (scriptEditor != null)
                {
                    result = scriptEditor.ConnectionString;
                }
                break;

            case PragmaSqlMacros.ServerName:
                if (scriptEditor != null)
                {
                    result = scriptEditor.Server;
                }
                break;

            case PragmaSqlMacros.DatabaseName:
                if (scriptEditor != null)
                {
                    result = scriptEditor.Database;
                }
                break;

            case PragmaSqlMacros.Username:
                scriptEditor = HostServicesSingleton.HostServices.EditorServices.CurrentScriptEditor;
                if (scriptEditor != null)
                {
                    result = scriptEditor.Username;
                }
                break;

            case PragmaSqlMacros.ObjExplorerNode:
                ObjectExplorerNode objExpNode = HostServicesSingleton.HostServices.ObjectExplorerService.SelNode;
                if (objExpNode != null)
                {
                    result = objExpNode.Name;
                }
                break;

            case PragmaSqlMacros.StartupPath:
                result = Application.StartupPath;
                break;

            default:
                break;
            }

            return(result);
        }
Пример #22
0
 /// <summary>
 /// Creates a new folder node for the object explorer that can be used to house other child nodes (I.E. Functions, etc)
 /// </summary>
 /// <param name="folderId"></param>
 /// <param name="folderType"></param>
 /// <param name="parentModel"></param>
 /// <returns></returns>
 public static ObjectExplorerNode CreateFolderNode(int folderId, string folderType, ObjectExplorerNode parentModel)
 {
     return(new ObjectExplorerNode
     {
         ParentId = parentModel.Id,
         Id = folderId,
         InstanceName = parentModel.InstanceName,
         Type = GlobalStrings.ObjectExplorerTypes.Folder,
         Data = parentModel.Data,
         DisplayName = folderType,
         FullName = GetFolderFullName(folderType, parentModel),
         ParentNodeName = parentModel.FullName,
         ImageIndex = 4,
         Properties = null,
     });
 }