/// <summary> /// Reads studio projects from project.xml /// Adds projects to listbox /// </summary> private void LoadProjectsList(string projectXmlPath, List <string> studioProjectsPaths) { try { var projectXmlDocument = new XmlDocument(); var filePathNames = _projectService.AddFilePaths(studioProjectsPaths); if (!IsNullOrEmpty(projectXmlPath)) { var projectsWithoutAnalysis = new List <string>(); projectXmlDocument.Load(projectXmlPath); var projectsNodeList = projectXmlDocument.SelectNodes("//ProjectListItem"); if (projectsNodeList == null) { return; } var studioProjects = _projectService.GetSelectedStudioProjects(); foreach (XmlNode xmlNode in projectsNodeList) { var projectId = GetAttributeValue(xmlNode, "Guid"); var projectInfo = studioProjects.FirstOrDefault(a => a.GetProjectInfo()?.Id.ToString() == projectId)?.GetProjectInfo(); if (projectInfo == null) { continue; } var reportsFolderPath = Path.Combine(projectInfo.LocalProjectFolder, "Reports"); var projectInfoNode = xmlNode.SelectSingleNode("./ProjectInfo"); if (projectInfoNode?.Attributes != null) { var reportExist = _reportService.ReportFolderExist(xmlNode, _projectService.ProjectsXmlPath); if (reportExist) { SetProjectDetails(reportsFolderPath, projectInfoNode, xmlNode, filePathNames); } else { projectsWithoutAnalysis.Add(projectInfo.Name); } } } SetProjectDataSource(); if (projectsWithoutAnalysis.Count > 0 && !_settingsService.GetSettings().DontShowInfoMessage) { var messageBox = new InformationMessage(_settingsService, projectsWithoutAnalysis); messageBox.ShowDialog(); } } } catch (Exception ex) { _logger.Error($"LoadProjectsList method: {ex.Message}\n {ex.StackTrace}"); } }
/// <summary> /// Reads studio projects from project.xml /// Adds projects to listbox /// </summary> private void LoadProjectsList(string projectXmlPath, List <string> studioProjectsPaths) { try { var projectXmlDocument = new XmlDocument(); var filePathNames = _projectService.AddFilePaths(studioProjectsPaths); if (!IsNullOrEmpty(projectXmlPath)) { projectXmlDocument.Load(projectXmlPath); var projectsNodeList = projectXmlDocument.SelectNodes("//ProjectListItem"); if (projectsNodeList == null) { return; } foreach (var item in projectsNodeList) { var projectInfo = ((XmlNode)item).SelectSingleNode("./ProjectInfo"); if (projectInfo?.Attributes != null) { var reportExist = _reportService.ReportFolderExist((XmlNode)item, _projectService.ProjectsXmlPath); if (reportExist) { SetProjectDetails(projectInfo, (XmlNode)item, filePathNames); } } } SetProjectDataSource(); } } catch (Exception ex) { Log.Logger.Error($"LoadProjectsList method: {ex.Message}\n {ex.StackTrace}"); } }