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) }; }