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