public void OpenWorkspace(string filepath)
        {
            // if(TargetWorkspace != null && CloseWorkspace() == DialogResult.Cancel)
            // {
            //     return;
            // }

            TargetWorkspace = new Workspace
            {
                WorkspaceFile     = new XmlDocument(),
                WorkspaceFilePath = filepath
            };
            TargetWorkspace.WorkspaceFile.Load(filepath);

            TargetWorkspace.WorkspaceRoot = Path.GetDirectoryName(filepath);

            var rootNode = TargetWorkspace.WorkspaceFile.SelectSingleNode("//Workspace");

            TargetWorkspace.WorkspaceName = rootNode.Attributes["Name"].Value;
            var nodes = TargetWorkspace.WorkspaceFile.SelectNodes("//Workspace//Project");

            foreach (XmlNode node in nodes)
            {
                string projectPath = Util.CanonicalizePath(Path.Combine(TargetWorkspace.WorkspaceRoot, node.Attributes["Path"].Value));
                var    proj        = ReadProjectFile(projectPath);
                proj.ProjectGuid = Guid.Parse(node.Attributes["GUID"].Value);
                TargetWorkspace.Projects.Add(proj.ProjectGuid, proj);
            }

            // Raise OnWorkspaceOpened event
            OnWorkspaceOpened?.Invoke(this, new WorkspaceOpenedEventArgs(TargetWorkspace));

            PopulateTreeView();
        }
        public void OpenWorkspace(string directory)
        {
            CloseWorkspace();
            WorkingDirectory = directory;

            _fileSystemWatcher.Path = WorkingDirectory;

            ResumeFileWatcher();

            OnWorkspaceOpened?.Invoke(this, EventArgs.Empty);
        }