private void loadBtn_Click(object sender, EventArgs e) { var loadFolderPath = new FolderSelectDialog(); var doc = new XmlDocument(); if (loadFolderPath.ShowDialog()) { var externalProjectsBindingList = new BindingList <ProjectDetails>(); _areExternalStudioProjects = true; _languages.Clear(); _projectsDataSource.Clear(); var projectsPathList = Directory.GetFiles(loadFolderPath.FileName, "*.sdlproj", SearchOption.AllDirectories); foreach (var projectPath in projectsPathList) { var reportFolderPath = Path.Combine(projectPath.Substring(0, projectPath.LastIndexOf(@"\", StringComparison.Ordinal)), "Reports"); if (Help.ReportFileExist(reportFolderPath)) { var projectDetails = ProjectInformation.GetExternalProjectDetails(projectPath); doc.Load(projectDetails.ProjectPath); Help.LoadReports(doc, projectDetails.ProjectFolderPath, projectDetails); externalProjectsBindingList.Add(projectDetails); } } foreach (var item in externalProjectsBindingList) { _projectsDataSource.Add(item); } projListbox.DataSource = _projectsDataSource; RefreshProjectsListBox(); RefreshLanguageListbox(); } }
private bool ReportFolderExist(XmlNode projectInfoNode) { if (projectInfoNode?.Attributes != null) { var filePath = Empty; if (projectInfoNode.Attributes["ProjectFilePath"] != null) { filePath = projectInfoNode.Attributes["ProjectFilePath"].Value; if (!Path.IsPathRooted(filePath)) { //project is located inside "Projects" folder in Studio var projectsFolderPath = _projectXmlPath.Substring (0, _projectXmlPath.LastIndexOf(@"\", StringComparison.Ordinal) + 1); var projectName = filePath.Substring(0, filePath.LastIndexOf(@"\", StringComparison.Ordinal)); filePath = Path.Combine(projectsFolderPath, projectName, "Reports"); } else { //is external project var reportsPath = filePath.Substring(0, filePath.LastIndexOf(@"\", StringComparison.Ordinal) + 1); filePath = Path.Combine(reportsPath, "Reports"); } } return(Help.ReportFileExist(filePath)); } return(false); }
/// <summary> /// Creates project details for given project from xml file /// </summary> /// <param name="projNode"></param> /// <returns></returns> private ProjectDetails CreateProjectDetails(XmlNode projNode) { var projectDetails = new ProjectDetails { LanguagesForPoject = new Dictionary <string, bool>(), ShouldBeExported = false }; var projectFolderPath = Empty; var doc = new XmlDocument(); var selectSingleNode = projNode.SelectSingleNode("ProjectInfo"); if (selectSingleNode?.Attributes != null) { projectDetails.ProjectName = selectSingleNode.Attributes["Name"].Value; } if (projNode.Attributes != null) { projectFolderPath = projNode.Attributes["ProjectFilePath"].Value; } if (Path.IsPathRooted(projectFolderPath)) { projectDetails.ProjectPath = projectFolderPath; //location outside standard project place } else { var projectsFolderPath = _projectXmlPath.Substring (0, _projectXmlPath.LastIndexOf(@"\", StringComparison.Ordinal) + 1); projectDetails.ProjectPath = projectsFolderPath + projectFolderPath; } var projectStatus = ProjectInformation.GetProjectStatus(projectDetails.ProjectPath); doc.Load(projectDetails.ProjectPath); var projectLanguages = Help.LoadLanguageDirections(doc); SetLanguagesForProject(projectDetails, projectLanguages); projectDetails.Status = projectStatus; return(projectDetails); }
private void InitializeSettings() { _areExternalStudioProjects = false; copyBtn.Enabled = false; csvBtn.Enabled = false; targetBtn.Enabled = false; includeHeaderCheck.Checked = true; _projectXmlPath = Help.GetStudioProjectsPath(); _allStudioProjectsDetails = new List <ProjectDetails>(); LoadProjectsList(_projectXmlPath); _optionalInformation = new OptionalInformation { IncludeAdaptiveBaseline = adaptiveMT.Checked, IncludeAdaptiveLearnings = adaptiveLearnings.Checked, IncludeInternalFuzzies = internalFuzzies.Checked, IncludeContextMatch = contextMatch.Checked, IncludeCrossRep = crossRep.Checked, IncludeLocked = locked.Checked, IncludePerfectMatch = perfectMatch.Checked }; }
private void PrepareProjectToExport(ProjectDetails selectedProject) { if (selectedProject != null) { var doc = new XmlDocument(); var selectedProjectIndex = _projectsDataSource.IndexOf(selectedProject); if (selectedProjectIndex > -1) { //Read sdlproj doc.Load(selectedProject.ProjectPath); Help.LoadReports(doc, selectedProject.ProjectFolderPath, selectedProject); selectedProject.ShouldBeExported = true; //if an project has only one language select that language if (selectedProject.LanguagesForPoject != null) { if (selectedProject.LanguagesForPoject.Count.Equals(1)) { var languageName = selectedProject.LanguagesForPoject.First().Key; var languageToBeSelected = _languages.FirstOrDefault(n => n.LanguageName.Equals(languageName)); if (languageToBeSelected != null) { languageToBeSelected.IsChecked = true; } else { var newLanguage = new LanguageDetails { LanguageName = languageName, IsChecked = true }; _languages.Add(newLanguage); } selectedProject.LanguagesForPoject[languageName] = true; } } var languagesAlreadySelectedForExport = _languages.Where(l => l.IsChecked).ToList(); foreach (var language in languagesAlreadySelectedForExport) { if (selectedProject.LanguagesForPoject != null && selectedProject.LanguagesForPoject.ContainsKey(language.LanguageName)) { selectedProject.LanguagesForPoject[language.LanguageName] = true; } } //show languages in language list box FillLanguagesList(); reportOutputPath.Text = selectedProject.ReportPath ?? Empty; copyBtn.Enabled = projListbox.SelectedItems.Count == 1; if (projListbox.SelectedItems.Count > 0) { csvBtn.Enabled = true; } RefreshLanguageListbox(); } } }