public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { try { var options = new SdlMTCloudTranslationOptions(); var credentials = SplitCredentials(credentialStore, options); var window = new OptionsWindow(); var languages = new Languages.Provider.Languages(); var model = new OptionsWindowModel(window, options, credentials, languagePairs, languages); window.DataContext = model; window.ShowDialog(); if (window.DialogResult.HasValue && window.DialogResult.Value) { var clientId = model.Options.ClientId; var clientSecret = model.Options.ClientSecret; var resendDraft = model.Options.ResendDrafts; var provider = new SdlMTCloudTranslationProvider(options) { Options = model.Options }; SetCredentials(credentialStore, clientId, clientSecret, resendDraft, true); return(new ITranslationProvider[] { provider }); } } catch (Exception e) { Log.Logger.Error($"{Constants.Browse} {e.Message}\n {e.StackTrace}"); } return(null); }
public SdlMTCloudTranslationProvider(SdlMTCloudTranslationOptions options) { Options = options; _languageMappingsService = new LanguageMappingsService(); _encryptedClientId = StringExtensions.EncryptData(Options.ClientId); _encryptedClientSecret = StringExtensions.EncryptData(Options.ClientSecret); }
public SdlMTCloudLanguageDirection(SdlMTCloudTranslationProvider beGlobalTranslationProvider, LanguagePair languageDirection) { _beGlobalTranslationProvider = beGlobalTranslationProvider; _languageDirection = languageDirection; _options = beGlobalTranslationProvider.Options; _translationUnits = new List <TranslationUnit>(); _editorController = AppInitializer.GetEditorController(); }
public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { var originalUri = new Uri(Constants.MTCloudUriScheme + ":///"); var options = new SdlMTCloudTranslationOptions(translationProviderUri); var credentials = credentialStore.GetCredential(originalUri); if (credentials != null) { var splitedCredentials = credentials.Credential?.Split('#'); options.ClientId = splitedCredentials?.Length > 2 ? StringExtensions.Decrypt(splitedCredentials[0]) : string.Empty; options.ClientSecret = splitedCredentials?.Length > 2 ? StringExtensions.Decrypt(splitedCredentials[1]) : string.Empty; options.AuthenticationMethod = splitedCredentials?.Length == 4 ? splitedCredentials[2] : string.Empty; var resendDraft = splitedCredentials?.Length == 4 ? splitedCredentials[3] : string.Empty; if (!string.IsNullOrEmpty(resendDraft)) { options.ResendDrafts = resendDraft.Equals("True"); } if (options.BeGlobalService == null) { options.BeGlobalService = new SdlMTCloudTranslator(Constants.MTCloudTranslateAPIUri, options); } } else { credentialStore.AddCredential(originalUri, new TranslationProviderCredential(originalUri.ToString(), true)); } int accountId; if (options.AuthenticationMethod.Equals("ClientLogin")) { accountId = options.BeGlobalService?.GetClientInformation() ?? 0; } else { accountId = options.BeGlobalService?.GetUserInformation() ?? 0; } var subscriptionInfo = options.BeGlobalService?.GetLanguagePairs(accountId.ToString()); options.SubscriptionInfo = subscriptionInfo; return(new SdlMTCloudTranslationProvider(options)); }
private TranslationProviderCredential SplitCredentials(ITranslationProviderCredentialStore credentialStore, SdlMTCloudTranslationOptions options) { var savedCredentials = GetCredentials(credentialStore, Constants.MTCloudUriScheme + ":///"); if (savedCredentials != null) { var splitedCredentials = savedCredentials.Credential?.Split('#'); options.ClientId = splitedCredentials?.Length > 2? StringExtensions.Decrypt(splitedCredentials[0]) : string.Empty; options.ClientSecret = splitedCredentials?.Length > 2 ? StringExtensions.Decrypt(splitedCredentials[1]) : string.Empty; options.AuthenticationMethod = splitedCredentials?.Length == 4 ? splitedCredentials[2] : string.Empty; var resendDraft = splitedCredentials?.Length == 4 ? splitedCredentials[3] : string.Empty; if (!string.IsNullOrEmpty(resendDraft)) { options.ResendDrafts = resendDraft.Equals("True"); } } return(savedCredentials); }
public void LoadState(string translationProviderState) { Options = JsonConvert.DeserializeObject <SdlMTCloudTranslationOptions>(translationProviderState); }