protected override void Execute()
            {
                try
                {
                    var window     = new MTCodesWindow();
                    var activeForm = StudioInstance.GetActiveForm();
                    if (activeForm != null)
                    {
                        var interopHelper = new WindowInteropHelper(window)
                        {
                            Owner = activeForm.Handle
                        };
                    }

                    var languages = new LanguageProvider();
                    var viewModel = new MTCodesViewModel(window, languages);
                    window.DataContext = viewModel;
                    window.ShowDialog();
                }

                catch (Exception ex)
                {
                    _logger.Error($"{Constants.ExcelExecuteAction} {ex.Message}\n {ex.StackTrace}");
                    throw;
                }
            }
예제 #2
0
        public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState,
                                                              ITranslationProviderCredentialStore credentialStore)
        {
            var connectionService = new ConnectionService(StudioInstance.GetActiveForm(), new VersionService(),
                                                          StudioInstance.GetLanguageCloudIdentityApi());

            var credential       = connectionService.GetCredential(credentialStore);
            var connectionResult = connectionService.EnsureSignedIn(credential);

            if (!connectionResult.Item1)
            {
                throw new TranslationProviderAuthenticationException(PluginResources.Message_Invalid_credentials);
            }
            connectionService.SaveCredential(credentialStore);

            var editorController   = StudioInstance.GetEditorController();
            var translationService = new TranslationService(connectionService);
            var languageProvider   = new LanguageProvider();
            var projectsController = StudioInstance.GetProjectsController();

            var provider = new SdlMTCloudTranslationProvider(translationProviderUri, translationProviderState,
                                                             translationService, languageProvider, editorController, projectsController);

            return(provider);
        }
        public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState,
                                                              ITranslationProviderCredentialStore credentialStore)
        {
            var currentProjProvider = MtCloudApplicationInitializer.GetCurrentProjectProvider();

            if (currentProjProvider != null)
            {
                MtCloudApplicationInitializer.SetTranslationService(null, currentProjProvider.TranslationService);
                return(currentProjProvider);
            }

            var connectionService = new ConnectionService(StudioInstance.GetActiveForm(), new VersionService(),
                                                          StudioInstance.GetLanguageCloudIdentityApi(), MtCloudApplicationInitializer.Client);

            var credential       = connectionService.GetCredential(credentialStore);
            var connectionResult = connectionService.EnsureSignedIn(credential);

            if (!connectionResult.Item1)
            {
                throw new TranslationProviderAuthenticationException(PluginResources.Message_Invalid_credentials);
            }
            connectionService.SaveCredential(credentialStore);

            MtCloudApplicationInitializer.SetTranslationService(connectionService, null);

            var languageProvider = new LanguageProvider();
            var provider         = new SdlMTCloudTranslationProvider(translationProviderUri, translationProviderState,
                                                                     MtCloudApplicationInitializer.TranslationService, languageProvider);

            MtCloudApplicationInitializer.AddCurrentProjectProvider(provider);

            return(provider);
        }