Esempio n. 1
0
        public static void RefreshTreeView()
        {
            RootNode.Items.Clear();

            var projectDirectory = Path.GetDirectoryName(ProjectPath);
            var vaultService     = new VaultService();
            var userVaultItem    = new TreeViewItem();

            userVaultItem.Header            = "User Vault";
            userVaultItem.MouseDoubleClick += (sender, args) =>
            {
                OpenFileService.OpenFile(vaultService.GetUserVaultPath());
            };
            RootNode.Items.Add(userVaultItem);
            RecursivelyBuildFolderTree(RootNode.Items, projectDirectory);
        }
Esempio n. 2
0
        private static void RecursivelyBuildFolderTree(ItemCollection collection, string path)
        {
            var directoryInfo = new DirectoryInfo(path);

            var directories = directoryInfo.GetDirectories();

            foreach (var directory in directories)
            {
                var directoryItem = new TreeViewItem();

                directoryItem.Header = directory.Name;
                AddCreateSnippetToTreeViewItem(directoryItem, directory.FullName);
                AddCreateListToTreeViewItem(directoryItem, directory.FullName);
                AddCreateFolderToTreeViewItem(directoryItem, directory.FullName);
                collection.Add(directoryItem);
                RecursivelyBuildFolderTree(directoryItem.Items, directory.FullName);
            }

            var powershellScriptFiles = directoryInfo.GetFiles("*.ps1");

            foreach (var file in powershellScriptFiles)
            {
                var newItem = new TreeViewItem();
                newItem.Header            = file.Name;
                newItem.MouseDoubleClick += (sender, args) =>
                {
                    OpenFileService.OpenFile(file.FullName);
                };
                AddDeleteToTreeViewItem(newItem, file.FullName);
                collection.Add(newItem);
            }

            var poshToolbeltSnippetFiles = directoryInfo.GetFiles("*.ptsnip");

            foreach (var file in poshToolbeltSnippetFiles)
            {
                var newItem = new TreeViewItem();
                newItem.Header            = file.Name;
                newItem.MouseDoubleClick += (sender, args) =>
                {
                    OpenFileService.OpenFile(file.FullName);
                };
                AddDeleteToTreeViewItem(newItem, file.FullName);
                collection.Add(newItem);
            }

            var poshToolbeltTypeFiles = directoryInfo.GetFiles("*.pttype");

            foreach (var file in poshToolbeltTypeFiles)
            {
                var newItem = new TreeViewItem();
                newItem.Header            = file.Name;
                newItem.MouseDoubleClick += (sender, args) =>
                {
                    OpenFileService.OpenFile(file.FullName);
                };
                AddDeleteToTreeViewItem(newItem, file.FullName);

                var text = File.ReadAllText(file.FullName);
                var type = JsonConvert.DeserializeObject <POSHToolbeltType>(text);
                TypeService.CustomTypes.Add(type);

                collection.Add(newItem);
            }
        }