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); }
public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { //TODO: Instantiate the new Rate it View part try { var uri = new Uri($"{Constants.MTCloudUriScheme}://"); var connectionService = new ConnectionService(owner, new VersionService(), StudioInstance.GetLanguageCloudIdentityApi(), MtCloudApplicationInitializer.Client); var credential = connectionService.GetCredential(credentialStore); var connectionResult = connectionService.EnsureSignedIn(credential, true); 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(uri, string.Empty, MtCloudApplicationInitializer.TranslationService, languageProvider); var optionsWindow = GetOptionsWindow(owner, languagePairs, provider); optionsWindow.ShowDialog(); if (optionsWindow.DialogResult.HasValue && optionsWindow.DialogResult.Value) { MtCloudApplicationInitializer.AddCurrentProjectProvider(provider); MtCloudApplicationInitializer.PublishEvent(new TranslationProviderAdded()); return(new ITranslationProvider[] { provider }); } } catch (Exception e) { _logger.Error($"{Constants.Browse} {e.Message}\n {e.StackTrace}"); } return(null); }