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