예제 #1
0
        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);
        }
예제 #2
0
        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);
        }