internal static TranslateEngine GetEngine(TranslateEnginesTypes translateEngineType, string isoFrom, string isoTo, string text) { Type engineType; if (translateEngineType == TranslateEnginesTypes.Bing) { engineType = typeof(BingTranslageEngine); } else { throw new ArgumentOutOfRangeException("Invalid Translate Engine"); } return(Activator.CreateInstance(engineType, new object[] { isoFrom, isoTo, text }) as TranslateEngine); }
public async Task<IEnumerable<ITranslateResult>> Translate(string isoFrom, string isoTo, string text, params TranslateEnginesTypes[] translateEnginesTypes) { List<ITranslateResult> translateResults = new List<ITranslateResult>(); if (!string.IsNullOrEmpty(text)) { if (!translateEnginesTypes?.Any() ?? false) translateEnginesTypes = new TranslateEnginesTypes[] { TranslateEnginesTypes.Bing }; foreach (var translateEngineType in translateEnginesTypes) { var engine = TranslateEngine.GetEngine(translateEngineType, isoFrom, isoTo, text); try { var result = await engine.GetTranslate(); translateResults.Add(result); } finally { } } } return translateResults; }