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); }