Example #1
0
        public void ApplyChanges()
        {
            if (SourceSearchResults.Any(s => s.TuSelected))
            {
                var progressDialogSettings = new ProgressDialogSettings(_window, true, true, false);

                var result = ProgressDialog.Execute(StringResources.Applying_changes, () =>
                {
                    var selectedSearchResult = SourceSearchResults.Where(s => s.TuSelected).ToList();
                    List <AnonymizeTranslationMemory> anonymizeTranslationMemories;

                    //file base tms
                    var fileBasedSearchResult = selectedSearchResult.Where(t => !t.IsServer).ToList();
                    if (fileBasedSearchResult.Count > 0)
                    {
                        anonymizeTranslationMemories = GetTranslationUnitsToAnonymize(ProgressDialog.Current, fileBasedSearchResult);

                        if (ProgressDialog.Current != null && ProgressDialog.Current.CheckCancellationPending())
                        {
                            ProgressDialog.Current.ThrowIfCancellationPending();
                        }

                        _model.TmService.AnonymizeFileBasedTm(ProgressDialog.Current, anonymizeTranslationMemories);
                    }

                    //server based tms
                    var serverBasedSearchResult = selectedSearchResult.Where(t => t.IsServer).ToList();
                    if (serverBasedSearchResult.Count > 0)
                    {
                        anonymizeTranslationMemories = GetTranslationUnitsToAnonymize(ProgressDialog.Current, serverBasedSearchResult);

                        if (ProgressDialog.Current != null && ProgressDialog.Current.CheckCancellationPending())
                        {
                            ProgressDialog.Current.ThrowIfCancellationPending();
                        }

                        _model.TmService.AnonymizeServerBasedTm(ProgressDialog.Current, anonymizeTranslationMemories);
                    }
                }, progressDialogSettings);

                if (result.Cancelled)
                {
                    System.Windows.Forms.MessageBox.Show(StringResources.Process_cancelled_by_user, System.Windows.Forms.Application.ProductName);
                    _window.Close();
                }

                if (result.OperationFailed)
                {
                    System.Windows.Forms.MessageBox.Show(StringResources.Process_failed + Environment.NewLine + Environment.NewLine + result.Error.Message, System.Windows.Forms.Application.ProductName);
                }

                RemoveSelectedTusToAnonymize();

                _model.Refresh();
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(StringResources.ApplyChanges_Please_select_at_least_one_translation_unit_to_apply_the_changes, System.Windows.Forms.Application.ProductName);
            }
        }
        private async void ApplyChanges()
        {
            if (SourceSearchResults.Any(s => s.TuSelected))
            {
                System.Windows.Application.Current.Dispatcher.Invoke(delegate
                {
                    _waitWindow = new WaitWindow();
                    _waitWindow.Show();
                });
                var selectedSearchResult = SourceSearchResults.Where(s => s.TuSelected).ToList();
                List <AnonymizeTranslationMemory> tusToAnonymize;
                //file base tms
                var fileBasedSearchResult = selectedSearchResult.Where(t => !t.IsServer).ToList();
                if (fileBasedSearchResult.Count > 0)
                {
                    BackupFileBasedTm();
                    tusToAnonymize = GetTranslationUnitsToAnonymize(fileBasedSearchResult);
                    Tm.AnonymizeFileBasedTu(tusToAnonymize);
                }
                //server based tms
                var serverBasedSearchResult = selectedSearchResult.Where(t => t.IsServer).ToList();
                if (serverBasedSearchResult.Count > 0)
                {
                    tusToAnonymize = GetTranslationUnitsToAnonymize(serverBasedSearchResult);
                    var uri = new Uri(_tmViewModel.Credentials.Url);
                    var translationProvider = new TranslationProviderServer(uri, false, _tmViewModel.Credentials.UserName,
                                                                            _tmViewModel.Credentials.Password);

                    BackupServerBasedTm(translationProvider, tusToAnonymize);
                    Tm.AnonymizeServerBasedTu(translationProvider, tusToAnonymize);
                }
                RemoveSelectedTusToAnonymize();
                _waitWindow?.Close();
            }
            else
            {
                await _dialogCoordinator.ShowMessageAsync(this, "", "Please select at least one translation unit to apply the changes");
            }
        }