/// <summary> /// Creates workspace info from the specified solution /// </summary> /// <param name="solution">Solution to build the workspace from</param> /// <returns>Workspace info</returns> public static WorkspaceInfo CreateFromSolution(SolutionStructure solution) { var result = new WorkspaceInfo(); RefreshFromSolution(result, solution); return(result); }
/// <summary> /// Refreshes the specified workspace from the given solution. /// </summary> /// <param name="workspace">Workspace information</param> /// <param name="solution">Solution to refresh from</param> public static void RefreshFromSolution(WorkspaceInfo workspace, SolutionStructure solution) { var currentProject = solution.Projects.FirstOrDefault(); if ((workspace.CurrentProject = currentProject) == null) { return; } // --- Re-scan project items again currentProject.CollectProjectItems(); // --- Set project items workspace.RomItem = currentProject.RomProjectItems.FirstOrDefault(); workspace.TzxItem = currentProject.TzxProjectItems.FirstOrDefault(); workspace.TapItem = currentProject.TapProjectItems.FirstOrDefault(); workspace.AnnotationItem = currentProject.AnnotationProjectItems .FirstOrDefault(i => Path.GetFileName(i.Filename)?.ToLower() == "annotations.disann"); workspace.VmState = currentProject.VmStateProjectItems.FirstOrDefault(); workspace.StartWithVmState = false; LoadRom(workspace); }