Beispiel #1
0
        public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore)
        {
            var options = new BeGlobalTranslationOptions();

            var credentials = GetCredentials(credentialStore, "beglobaltranslationprovider:///");

            var beGlobalWindow = new BeGlobalWindow();
            var beGlobalVm     = new BeGlobalWindowViewModel(beGlobalWindow, options, credentials);

            beGlobalWindow.DataContext = beGlobalVm;

            beGlobalWindow.ShowDialog();
            if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
            {
                var provider = new BeGlobalTranslationProvider(options)
                {
                    Options = beGlobalVm.Options
                };
                var clientId     = beGlobalVm.Options.ClientId;
                var clientSecret = beGlobalVm.Options.ClientSecret;
                SetBeGlobalCredentials(credentialStore, clientId, clientSecret, true);
                return(new ITranslationProvider[] { provider });
            }
            return(null);
        }
        public override void Execute()
        {
            AppItializer.EnsureInitializer();

            var currentProject      = SdlTradosStudio.Application?.GetController <ProjectsController>().CurrentProject;
            var settings            = currentProject?.GetTranslationProviderConfiguration();
            var translationProvider = settings?.Entries?.FirstOrDefault(entry =>
                                                                        entry.MainTranslationProvider.Uri.OriginalString.Contains("sdlmachinetranslationcloudprovider"));

            if (translationProvider != null)
            {
                var uri           = translationProvider.MainTranslationProvider?.Uri;
                var languagePairs = GetProjectLanguagePairs(currentProject);
                var options       = new BeGlobalTranslationOptions(uri);

                var beGlobalWindow = new BeGlobalWindow();
                var beGlobalVm     = new BeGlobalWindowViewModel(options, languagePairs, null);
                beGlobalWindow.DataContext = beGlobalVm;
                beGlobalWindow.ShowDialog();

                if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                {
                    settings.Entries
                    .Find(entry => entry.MainTranslationProvider.Uri.OriginalString.Contains("sdlmachinetranslationcloudprovider"))
                    .MainTranslationProvider.Uri = options.Uri;
                    currentProject.UpdateTranslationProviderConfiguration(settings);
                }
            }
        }
Beispiel #3
0
 public BeGlobalWindowViewModel(BeGlobalWindow mainWindow, BeGlobalTranslationOptions options, bool tellMeAction)
 {
     LoginViewModel    = new LoginViewModel(options);
     SettingsViewModel = new SettingsViewModel(options);
     Options           = options;
     if (options != null)
     {
         var mtModel = SettingsViewModel.TranslationOptions.FirstOrDefault(m => m.Model.Equals(options.Model));
         if (mtModel != null)
         {
             var selectedModelIndex = SettingsViewModel.TranslationOptions.IndexOf(mtModel);
             SettingsViewModel.SelectedModelOption = SettingsViewModel.TranslationOptions[selectedModelIndex];
         }
         else if (SettingsViewModel.TranslationOptions.Count.Equals(0))
         {
             var translationModel = new TranslationModel
             {
                 Model       = options.Model,
                 DisplayName = options.Model
             };
             SettingsViewModel.TranslationOptions.Add(translationModel);
             SettingsViewModel.SelectedModelOption = translationModel;
         }
     }
     _mainWindow   = mainWindow;
     _tellMeAction = tellMeAction;
     _normalizeSourceTextHelper = new NormalizeSourceTextHelper();
 }
Beispiel #4
0
        public BeGlobalWindowViewModel(BeGlobalWindow mainWindow, BeGlobalTranslationOptions options,
                                       TranslationProviderCredential credentialStore, LanguagePair[] languagePairs)
        {
            LoginViewModel             = new LoginViewModel(options);
            SettingsViewModel          = new SettingsViewModel(options);
            Options                    = options;
            _mainWindow                = mainWindow;
            _languagePairs             = languagePairs;
            _normalizeSourceTextHelper = new NormalizeSourceTextHelper();

            if (credentialStore == null)
            {
                return;
            }
            if (options.UseClientAuthentication)
            {
                _mainWindow.LoginTab.ClientKeyBox.Password    = options.ClientId;
                _mainWindow.LoginTab.ClientSecretBox.Password = options.ClientSecret;
            }
            else
            {
                LoginViewModel.Email = options.ClientId;
                _mainWindow.LoginTab.PasswordBox.Password = options.ClientSecret;
            }
        }
        public override void Execute()
        {
            var currentProject      = SdlTradosStudio.Application.GetController <ProjectsController>().CurrentProject;
            var settings            = currentProject.GetTranslationProviderConfiguration();
            var translationProvider = settings.Entries.FirstOrDefault(entry => entry.MainTranslationProvider.Uri.OriginalString.Contains("beglobaltranslationprovider"));

            if (translationProvider != null)
            {
                var uri            = translationProvider.MainTranslationProvider.Uri;
                var options        = new BeGlobalTranslationOptions(uri);
                var beGlobalWindow = new BeGlobalWindow();
                var beGlobalVm     = new BeGlobalWindowViewModel(beGlobalWindow, options, true);
                beGlobalWindow.DataContext = beGlobalVm;
                beGlobalWindow.ShowDialog();
                if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                {
                    settings.Entries
                    .Find(entry =>
                          entry.MainTranslationProvider.Uri.OriginalString.Contains("beglobaltranslationprovider"))
                    .MainTranslationProvider.Uri = options.Uri;

                    currentProject.UpdateTranslationProviderConfiguration(settings);
                }
            }
        }
Beispiel #6
0
        public BeGlobalWindowViewModel(BeGlobalWindow mainWindow, BeGlobalTranslationOptions options, LanguagePair[] languagePairs)
        {
            Options                    = options;
            _mainWindow                = mainWindow;
            _languagePairs             = languagePairs;
            _normalizeSourceTextHelper = new NormalizeSourceTextHelper();
            TranslationOptions         = new ObservableCollection <TranslationModel>();

            var beGlobalTranslator = new BeGlobalV4Translator(Options?.Model);
            var accountId          = beGlobalTranslator.GetUserInformation();

            var subscriptionInfo = beGlobalTranslator.GetLanguagePairs(accountId.ToString());

            GetEngineModels(subscriptionInfo.LanguagePairs);
            SetEngineModel();
        }
        public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs,
                         ITranslationProviderCredentialStore credentialStore)
        {
            try
            {
                var editProvider = translationProvider as BeGlobalTranslationProvider;

                if (editProvider == null)
                {
                    return(false);
                }

                //get saved key if there is one and put it into options
                var credentials = GetCredentials(credentialStore, "sdlmachinetranslationcloudprovider:///");
                if (credentials != null)
                {
                    var splitedCredentials = credentials.Credential.Split('#');
                    if (splitedCredentials.Length == 2 && !string.IsNullOrEmpty(splitedCredentials[0]) && !string.IsNullOrEmpty(splitedCredentials[1]))
                    {
                        editProvider.Options.ClientId     = splitedCredentials[0];
                        editProvider.Options.ClientSecret = splitedCredentials[1];
                    }
                }
                var beGlobalWindow = new BeGlobalWindow();
                var beGlobalVm     = new BeGlobalWindowViewModel(editProvider.Options, languagePairs, credentials);
                beGlobalWindow.DataContext = beGlobalVm;

                beGlobalWindow.ShowDialog();
                if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                {
                    editProvider.Options              = beGlobalVm.Options;
                    editProvider.Options.ClientId     = beGlobalWindow.LoginTab.ClientIdBox.Password.TrimEnd();
                    editProvider.Options.ClientSecret = beGlobalWindow.LoginTab.ClientSecretBox.Password.TrimEnd();
                    SetCredentials(credentialStore, editProvider.Options.ClientId, beGlobalVm.Options.ClientSecret, true);
                    return(true);
                }
            }
            catch (Exception e)
            {
                Log.Logger.Error($"{Constants.EditWindow} {e.Message}\n {e.StackTrace}");
            }
            return(false);
        }
        public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs,
                         ITranslationProviderCredentialStore credentialStore)
        {
            try
            {
                var editProvider = translationProvider as BeGlobalTranslationProvider;

                if (editProvider == null)
                {
                    return(false);
                }
                var token = string.Empty;
                AppItializer.EnsureInitializer();
                Application.Current?.Dispatcher?.Invoke(() =>
                {
                    token = _studioCredentials.GetToken();
                });

                if (!string.IsNullOrEmpty(token))
                {
                    var beGlobalWindow = new BeGlobalWindow();
                    var beGlobalVm     = new BeGlobalWindowViewModel(beGlobalWindow, editProvider.Options, languagePairs);
                    beGlobalWindow.DataContext = beGlobalVm;

                    beGlobalWindow.ShowDialog();
                    if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                    {
                        editProvider.Options = beGlobalVm.Options;
                        return(true);
                    }
                }
            }
            catch (Exception e)
            {
                Log.Logger.Error($"Edit window: {e.Message}\n {e.StackTrace}");
            }
            return(false);
        }
Beispiel #9
0
        public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs,
                         ITranslationProviderCredentialStore credentialStore)
        {
            var editProvider = translationProvider as BeGlobalTranslationProvider;

            if (editProvider == null)
            {
                return(false);
            }

            //get saved key if there is one and put it into options
            var savedCredentials = GetCredentials(credentialStore, "beglobaltranslationprovider:///");

            if (savedCredentials != null)
            {
                var splitedCredentials = savedCredentials.Credential.Split('#');
                var clientId           = splitedCredentials[0];
                var clientSecret       = splitedCredentials[1];

                editProvider.Options.ClientId     = clientId;
                editProvider.Options.ClientSecret = clientSecret;
            }
            var beGlobalWindow = new BeGlobalWindow();
            var beGlobalVm     = new BeGlobalWindowViewModel(beGlobalWindow, editProvider.Options, savedCredentials);

            beGlobalWindow.DataContext = beGlobalVm;

            beGlobalWindow.ShowDialog();
            if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
            {
                editProvider.Options = beGlobalVm.Options;
                var clientId     = editProvider.Options.ClientId;
                var clientSecret = beGlobalVm.Options.ClientSecret;
                SetBeGlobalCredentials(credentialStore, clientId, clientSecret, true);
                return(true);
            }
            return(false);
        }
        public BeGlobalWindowViewModel(BeGlobalWindow mainWindow, BeGlobalTranslationOptions options,
                                       TranslationProviderCredential credentialStore, LanguagePair[] languagePairs)
        {
            LanguageMappingsViewModel = new LanguageMappingsViewModel(options);
            LoginViewModel            = new LoginViewModel(options, languagePairs, LanguageMappingsViewModel, this);
            Options     = options;
            _mainWindow = mainWindow;

            if (credentialStore == null)
            {
                return;
            }
            if (options.UseClientAuthentication)
            {
                _mainWindow.LoginTab.ClientIdBox.Password     = options.ClientId;
                _mainWindow.LoginTab.ClientSecretBox.Password = options.ClientSecret;
            }
            else
            {
                LoginViewModel.Email = options.ClientId;
                _mainWindow.LoginTab.UserPasswordBox.Password = options.ClientSecret;
            }
        }
        public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore)
        {
            try
            {
                AppItializer.EnsureInitializer();
                var options = new BeGlobalTranslationOptions();
                var token   = string.Empty;

                Application.Current?.Dispatcher?.Invoke(() =>
                {
                    token = _studioCredentials.GetToken();
                });
                if (!string.IsNullOrEmpty(token))
                {
                    var beGlobalWindow = new BeGlobalWindow();
                    var beGlobalVm     = new BeGlobalWindowViewModel(beGlobalWindow, options, languagePairs);
                    beGlobalWindow.DataContext = beGlobalVm;

                    beGlobalWindow.ShowDialog();
                    if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                    {
                        var beGlobalService = new BeGlobalV4Translator(beGlobalVm.Options.Model);
                        beGlobalVm.Options.BeGlobalService = beGlobalService;
                        var provider = new BeGlobalTranslationProvider(options)
                        {
                            Options = beGlobalVm.Options
                        };
                        return(new ITranslationProvider[] { provider });
                    }
                }
            }
            catch (Exception e)
            {
                Log.Logger.Error($"Browse: {e.Message}\n {e.StackTrace}");
            }
            return(null);
        }
        public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore)
        {
            try
            {
                var options = new BeGlobalTranslationOptions();
                var token   = string.Empty;

                var credentials = GetCredentials(credentialStore, "sdlmachinetranslationcloudprovider:///");
                AppItializer.EnsureInitializer();

                var beGlobalWindow = new BeGlobalWindow();
                var beGlobalVm     = new BeGlobalWindowViewModel(options, languagePairs, credentials);
                beGlobalWindow.DataContext = beGlobalVm;

                beGlobalWindow.ShowDialog();
                if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value)
                {
                    var messageBoxService = new MessageBoxService();
                    var beGlobalService   = new BeGlobalV4Translator(beGlobalVm.Options, messageBoxService, credentials);
                    beGlobalVm.Options.BeGlobalService = beGlobalService;

                    var provider = new BeGlobalTranslationProvider(options)
                    {
                        Options = beGlobalVm.Options
                    };

                    SetCredentials(credentialStore, beGlobalVm.Options.ClientId, beGlobalVm.Options.ClientSecret, true);
                    return(new ITranslationProvider[] { provider });
                }
            }
            catch (Exception e)
            {
                Log.Logger.Error($"{Constants.Browse} {e.Message}\n {e.StackTrace}");
            }
            return(null);
        }
        public BeGlobalWindowViewModel(BeGlobalTranslationOptions options, LanguagePair[] languagePairs, TranslationProviderCredential credentials)
        {
            Options                    = options;
            BeGlobalWindow             = new BeGlobalWindow();
            _languagePairs             = languagePairs;
            _normalizeSourceTextHelper = new NormalizeSourceTextHelper();
            _loginMethod               = Enums.LoginOptions.APICredentials.ToString();
            _credentials               = credentials;
            TranslationOptions         = new ObservableCollection <TranslationModel>();
            SelectedIndex              = (int)Enums.LoginOptions.APICredentials;
            _messageBoxService         = new MessageBoxService();
            if (Options != null)
            {
                ReSendChecked = options.ResendDrafts;
            }
            SetLoginOptions();
            if (credentials == null)
            {
                return;
            }
            var credential = _credentials.Credential.Replace("sdlmachinetranslationcloudprovider:///", string.Empty);

            if (credential.Contains("#"))
            {
                var splitedCredentials = credentials.Credential.Split('#');
                if (splitedCredentials.Length == 2 && !string.IsNullOrEmpty(splitedCredentials[0]) && !string.IsNullOrEmpty(splitedCredentials[1]))
                {
                    var beGlobalTranslator = new BeGlobalV4Translator(Options, _messageBoxService, _credentials);
                    var accountId          = beGlobalTranslator.GetUserInformation();
                    var subscriptionInfo   = beGlobalTranslator.GetLanguagePairs(accountId.ToString());
                    GetEngineModels(subscriptionInfo);
                    SetEngineModel();
                    SetAuthenticationOptions();
                }
            }
        }