private bool CreateWizardContext(AbstractController controller, out string message) { _wizardContext = new WizardContext(_action, _settings); message = string.Empty; if (controller is ProjectsController || controller is FilesController) { var selectedProject = _controllers.ProjectsController.SelectedProjects.FirstOrDefault() ?? _controllers.ProjectsController.CurrentProject; _wizardContext.Owner = controller is ProjectsController ? Enumerators.Controller.Projects : Enumerators.Controller.Files; // activate the selected project if diffrent to the current project if (_controllers.ProjectsController.CurrentProject?.GetProjectInfo().Id != selectedProject.GetProjectInfo().Id) { _controllers.ProjectsController.Open(selectedProject); } _wizardContext.AnalysisBands = _projectAutomationService.GetAnalysisBands(selectedProject); var projectInfo = selectedProject.GetProjectInfo(); var selectedFileIds = new List <string>(); if (controller is FilesController) { selectedFileIds = _controllers.FilesController.SelectedFiles.Select(a => a.Id.ToString()).ToList(); } else { foreach (var targetLanguage in projectInfo.TargetLanguages) { var allFiles = selectedProject.GetTargetLanguageFiles(targetLanguage); selectedFileIds.AddRange( from projectFile in allFiles where projectFile.Role == FileRole.Translatable select projectFile.Id.ToString()); } } _wizardContext.LocalProjectFolder = projectInfo.LocalProjectFolder; _wizardContext.TransactionFolder = _wizardContext.GetDefaultTransactionPath(); var project = _projectAutomationService.GetProject(selectedProject, selectedFileIds); _wizardContext.Project = project; _wizardContext.ProjectFiles = project.ProjectFiles; } else if (controller is TranscreateViewController) { _wizardContext.Owner = Enumerators.Controller.Manager; var selectedProjectFiles = _controllers.TranscreateController.GetSelectedProjectFiles(); var selectedProjects = _controllers.TranscreateController.GetSelectedProjects(); var selectedFileIds = selectedProjectFiles?.Select(a => a.FileId.ToString()).ToList(); if (selectedProjects.Count == 0) { message = PluginResources.WizardMessage_NoProjectSelected; return(false); } if (selectedProjects.Count > 1) { message = PluginResources.WizardMessage_MultipleProjectsSelected; return(false); } var selectedProject = _controllers.ProjectsController.GetProjects() .FirstOrDefault(a => a.GetProjectInfo().Id.ToString() == selectedProjects[0].Id); if (selectedProject == null) { message = PluginResources.WizardMessage_UnableToLocateSelectedProject; return(false); } _wizardContext.AnalysisBands = _projectAutomationService.GetAnalysisBands(selectedProject); var projectInfo = selectedProject.GetProjectInfo(); _wizardContext.LocalProjectFolder = projectInfo.LocalProjectFolder; _wizardContext.TransactionFolder = _wizardContext.GetDefaultTransactionPath(); var project = _projectAutomationService.GetProject(selectedProject, selectedFileIds); _wizardContext.Project = project; _wizardContext.ProjectFiles = project.ProjectFiles; } return(true); }
private bool CreateWizardContext(AbstractController controller, out string message) { _wizardContext = new WizardContext(_action, _settings); message = string.Empty; if (controller is ProjectsController || controller is FilesController) { var selectedProject = _controllers.ProjectsController.SelectedProjects.FirstOrDefault() ?? _controllers.ProjectsController.CurrentProject; _wizardContext.Owner = controller is ProjectsController ? Enumerators.Controller.Projects : Enumerators.Controller.Files; // activate the selected project if diffrent to the current project if (_controllers.ProjectsController.CurrentProject?.GetProjectInfo().Id != selectedProject.GetProjectInfo().Id) { _controllers.ProjectsController.Open(selectedProject); } _wizardContext.AnalysisBands = GetAnalysisBands(selectedProject); var projectInfo = selectedProject.GetProjectInfo(); var selectedFileIds = controller is FilesController ? _controllers.FilesController.SelectedFiles.Select(a => a.Id.ToString()).ToList() : null; _wizardContext.LocalProjectFolder = projectInfo.LocalProjectFolder; _wizardContext.TransactionFolder = _wizardContext.GetDefaultTransactionPath(); var projectModel = GetProjectModel(selectedProject, selectedFileIds); _wizardContext.Project = projectModel; _wizardContext.ProjectFiles = projectModel.ProjectFiles; } else if (controller is XLIFFManagerViewController) { _wizardContext.Owner = Enumerators.Controller.XliffManager; var selectedProjectFiles = _controllers.XliffManagerController.GetSelectedProjectFiles(); var selectedProjects = GetSelectedProjects(); var selectedFileIds = selectedProjectFiles?.Select(a => a.FileId.ToString()).ToList(); if (selectedProjects.Count == 0) { message = PluginResources.WizardMessage_NoProjectSelected; return(false); } if (selectedProjects.Count > 1) { message = PluginResources.WizardMessage_MultipleProjectsSelected; return(false); } var selectedProject = _controllers.ProjectsController.GetProjects() .FirstOrDefault(a => a.GetProjectInfo().Id.ToString() == selectedProjects[0].Id); if (selectedProject == null) { message = PluginResources.WizardMessage_UnableToLocateSelectedProject; return(false); } _wizardContext.AnalysisBands = GetAnalysisBands(selectedProject); var projectInfo = selectedProject.GetProjectInfo(); _wizardContext.LocalProjectFolder = projectInfo.LocalProjectFolder; _wizardContext.TransactionFolder = _wizardContext.GetDefaultTransactionPath(); var projectModel = GetProjectModel(selectedProject, selectedFileIds); _wizardContext.Project = projectModel; _wizardContext.ProjectFiles = projectModel.ProjectFiles; } return(true); }