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);
            }
Esempio n. 2
0
        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;
        }