Example #1
0
        /// <summary>
        /// Detects the language of the input text.
        /// </summary>
        /// <param name="textToDetect">The text to translate.</param>
        /// <returns>The language identifier.</returns>
        public async Task <string> DetectAsync(string textToDetect)
        {
            textToDetect = PreprocessMessage(textToDetect);

            var payload = new TranslatorRequestModel[] { new TranslatorRequestModel {
                                                             Text = textToDetect
                                                         } };

            using (var request = GetDetectRequestMessage(payload))
            {
                using (var response = await _httpClient.SendAsync(request).ConfigureAwait(false))
                {
                    var result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                    if (response.IsSuccessStatusCode)
                    {
                        var detectedLanguages = JsonConvert.DeserializeObject <IEnumerable <DetectedLanguageModel> >(result);
                        var detectedLang      = detectedLanguages.First().Language;
                        return(detectedLang);
                    }
                    else
                    {
                        var errorResult = JsonConvert.DeserializeObject <ErrorModel>(result);
                        throw new ArgumentException(errorResult.Error.Message);
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Detects the language of the input text.
        /// </summary>
        /// <param name="textToDetect">The text to translate.</param>
        /// <returns>A task that represents the detection operation.
        /// The task result contains the id of the detected language.</returns>
        public async Task <string> DetectAsync(string textToDetect)
        {
            textToDetect = _preProcessor.PreprocessMessage(textToDetect);

            var payload = new TranslatorRequestModel[] { new TranslatorRequestModel {
                                                             Text = textToDetect
                                                         } };

            using (var request = _requestBuilder.BuildDetectRequest(payload))
            {
                var detectedLanguages = await _responseGenerator.GenerateDetectResponseAsync(request).ConfigureAwait(false);

                return(detectedLanguages.First().Language);
            }
        }