private void Setup(bool providerAdded = false) { if (MtCloudApplicationInitializer.CurrentViewDetector.View != Helpers.CurrentViewDetector.CurrentView.EditorView) { return; } var projectInProcessing = MtCloudApplicationInitializer.GetProjectInProcessing(); if (MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project != projectInProcessing) { return; } var currentProvider = MtCloudApplicationInitializer.GetCurrentProjectProvider(); var visibility = currentProvider != null && currentProvider.Options.SendFeedback && (GetTpStatus() || providerAdded); SwitchVisibility(visibility); if (currentProvider is null) { return; } try { Application.Current?.Dispatcher?.Invoke( () => RateIt.SetTranslationService(currentProvider.TranslationService)); } catch { // catch all; unable to locate the controller } }
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); }