private void Run(IReadOnlyCollection <SystemFileInfo> importFiles, Language language)
        {
            var projectHelper         = new ProjectService(_projectsController, _studioVersionService);
            var analysisBands         = projectHelper.GetAnalysisBands(_projectsController.CurrentProject ?? _projectsController.SelectedProjects.FirstOrDefault());
            var filterItemService     = new FilterItemService(analysisBands);
            var commonService         = new ProjectFileService();
            var segmentVisitor        = new SegmentVisitor();
            var segmentBuilder        = new SegmentBuilder();
            var paragraphUnitProvider = new ParagraphUnitProvider(segmentVisitor, filterItemService, segmentBuilder);
            var sdlxliffImporter      = new SdlxliffImporter(commonService, filterItemService, paragraphUnitProvider, segmentBuilder);
            var sdlXliffReader        = new SdlxliffReader();

            _window = new StudioViewsFilesImportView();
            var model = new StudioViewsFilesImportViewModel(_window, _filesController, language, commonService, filterItemService, sdlxliffImporter, sdlXliffReader);

            _window.DataContext = model;
            if (importFiles != null)
            {
                model.AddFiles(importFiles);
            }

            _window.ShowDialog();

            if (model.DialogResult != DialogResult.OK)
            {
                return;
            }

            OpenMessageWindow(model);
        }
        private static void OpenMessageWindow(StudioViewsFilesImportViewModel model)
        {
            var messageInfo = new MessageInfo
            {
                Title       = PluginResources.Message_Title_Task_Result,
                Message     = model.Message,
                LogFilePath = model.LogFilePath,
                Folder      = model.ExportPath,
                ShowImage   = true,
                ImageUrl    = model.Success
                                        ? "/Sdl.Community.StudioViews;component/Resources/information.png"
                                        : "/Sdl.Community.StudioViews;component/Resources/warning.png"
            };

            var messageView      = new MessageBoxView();
            var messageViewModel = new MessageBoxViewModel(messageView, messageInfo);

            messageView.DataContext = messageViewModel;

            messageView.ShowDialog();
        }
Example #3
0
        protected override void Execute()
        {
            var selectedFiles = _filesController.SelectedFiles.Where(projectFile => projectFile.Role == FileRole.Translatable).ToList();

            if (selectedFiles.Count == 0)
            {
                MessageBox.Show(PluginResources.Message_No_files_selected, PluginResources.Plugin_Name, MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            var missingFiles = selectedFiles.Any(file => file.LocalFileState == LocalFileState.Missing);

            if (missingFiles)
            {
                MessageBox.Show(PluginResources.Message_Missing_Project_Files_Download_From_Server, PluginResources.Plugin_Name, MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            var projectHelper    = new ProjectService(_projectsController);
            var analysisBands    = projectHelper.GetAnalysisBands(_projectsController.CurrentProject ?? _projectsController.SelectedProjects.FirstOrDefault());
            var filterItemHelper = new FilterItemService();
            var commonService    = new ProjectFileService();
            var sdlxliffImporter = new SdlxliffImporter(commonService, filterItemHelper, analysisBands);
            var sdlXliffReader   = new SdlxliffReader();

            _window = new StudioViewsFilesImportView();
            var model = new StudioViewsFilesImportViewModel(_window, selectedFiles, commonService, filterItemHelper, sdlxliffImporter, sdlXliffReader);

            _window.DataContext = model;
            _window.ShowDialog();

            if (model.DialogResult != DialogResult.OK)
            {
                return;
            }

            OpenMessageWindow(model);
        }