예제 #1
0
        public async Task <TextForAnalysis> FetchTextForAnalysis(Message message)
        {
            var fullText = System.Text.Encoding.UTF8.GetString(message.Body);

            var(detected, fromLang) =
                message.UserProperties.TryGetValue(FROM_LANG, out var fromLangObj)
                                ? (true, fromLangObj.ToString())
                                : await languageDetector.TryDetectLanguageAsync(fullText).ConfigureAwait(false);

            if (!detected)
            {
                throw new Exception(COULD_NOT_DETECT_LANGUAGE_MESSAGE);
            }

            var toLang =
                message.UserProperties.TryGetValue(TO_LANG, out var toLangObj)
                                ? toLangObj.ToString()
                                : fromLang;

            return(new()
            {
                Text = fullText,
                FromLang = fromLang,
                ToLang = toLang
            });
        }