public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { var controlledMTProvider = (ControlledMtProvidersProvider)translationProvider; List <ITranslationProvider> mtProviders = new List <ITranslationProvider>(); //move this to mmtProvider using (MTProvidersDialog pd = new MTProvidersDialog(controlledMTProvider)) { DialogResult result = pd.ShowDialog(owner); if (result != DialogResult.OK) { return(false); } var mtProvidersUi = pd.SelectedTranslationProvidersWinformsUI; if (mtProvidersUi.Count == 0) { return(false); } foreach (var mtProviderUi in mtProvidersUi) { var innerProviders = mtProviderUi.Browse(owner, languagePairs, credentialStore); if (innerProviders != null && innerProviders.All(x => x.TranslationMethod == TranslationMethod.MachineTranslation)) { mtProviders.AddRange(innerProviders); } } } controlledMTProvider.MtProviders = mtProviders; return(true); }
public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { List <ITranslationProvider> mtProviders = new List <ITranslationProvider>(); ControlledMtProvidersProvider controlledMTProvider = new ControlledMtProvidersProvider(); using (MTProvidersDialog pd = new MTProvidersDialog(controlledMTProvider)) { DialogResult result = pd.ShowDialog(owner); if (result != DialogResult.OK) { return(null); } var mtProvidersUi = pd.SelectedTranslationProvidersWinformsUI; if (mtProvidersUi.Count == 0) { return(null); } foreach (var mtProviderUi in mtProvidersUi) { var innerProviders = mtProviderUi.Browse(owner, languagePairs, credentialStore); if (innerProviders != null && innerProviders.All(x => x.TranslationMethod == TranslationMethod.MachineTranslation)) { mtProviders.AddRange(innerProviders); } } } return(new ITranslationProvider[] { new ControlledMtProvidersProvider(mtProviders) }); }