public static bool AddEntry(string key, string value, MensaBotEntities mensaBotEntities, string channelId, string conversationId) { try { if (string.IsNullOrEmpty(value)) { return(false); } var chat = mensaBotEntities.Chats.Single(t => t.ConversationId == conversationId && t.ChannelId == channelId); if (chat.Settings.Any(s => s.Key == key)) { chat.Settings.Single(s => s.Key == key).Value = value; mensaBotEntities.SaveChanges(); return(true); } else { chat.Settings.Add( new Setting { Key = key, Value = value }); mensaBotEntities.SaveChanges(); return(true); } } catch (Exception e) { return(false); } }
public static bool CreateChatEntry(MensaBotEntities mensaBotEntities, string channelId, string conversationId, string serviceURL) { if (!(mensaBotEntities.Chats.Any(t => t.ConversationId == conversationId && t.ChannelId == channelId))) { var tmp = mensaBotEntities.Chats.Add( new Chat { ChannelId = channelId, ConversationId = conversationId, ServiceURL = serviceURL, Settings = new List <Setting> { new Setting { Key = DatabaseUtilities.LanguageTag, Value = "en" } } }); mensaBotEntities.SaveChanges(); return(true); } return(false); }
public static bool RemoveKey(MensaBotEntities mensaBotEntities, string key, string channelId, string coversationId) { try { var chat = mensaBotEntities.Chats.FirstOrDefault(t => t.ConversationId == coversationId && t.ChannelId == channelId); if (chat == null || chat.Settings == null) { return(false); } if (chat.Settings.Any(s => s.Key == key)) { mensaBotEntities.Settings.Remove(chat.Settings.Single(s => s.Key == key)); mensaBotEntities.SaveChanges(); return(true); } } catch (Exception e) { return(false); } return(false); }
public string SetDefaultCanteen(CanteenName defaultCanteen, MensaBotEntities mensaBotEntities, string channelId, string conversationId, string serviceURL) { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); if (DatabaseUtilities.AddEntry(DatabaseUtilities.DefaultMensaTag, defaultCanteen.ToString(), mensaBotEntities, channelId, conversationId)) { return(Lang.add_canteen); } else { return(Lang.add_canteen_failed); } }
public string SetLanguage(MensaBotEntities mensaBotEntities, string language, string channelId, string conversationId) { int index = Array.IndexOf(MessageInterpreter.AvailableLanguages, language); if (index >= 0) { if (DatabaseUtilities.AddEntry(DatabaseUtilities.LanguageTag, language, mensaBotEntities, channelId, conversationId)) { return(Lang.add_language + ": " + language); } else { return(Lang.add_language_failed + " :" + language); } } return(Lang.unknown_language); }
public static bool RemoveAllSettingsAndChat(MensaBotEntities mensaBotEntities, string channelId, string conversationId) { if ((mensaBotEntities.Chats.Any(t => t.ConversationId == conversationId && t.ChannelId == channelId))) { var chat = mensaBotEntities.Chats.FirstOrDefault(t => t.ConversationId == conversationId && t.ChannelId == channelId); if (chat.Settings != null) { mensaBotEntities.Settings.RemoveRange((chat.Settings)); mensaBotEntities.SaveChanges(); } mensaBotEntities.Chats.Remove(chat); mensaBotEntities.SaveChanges(); return(true); } return(false); }
public bool SendTrigger(string trigger) { MensaBotEntities mensaBotEntities = new MensaBotEntities(); List <Chat> chats = DatabaseUtilities.GetChatTrigger(mensaBotEntities, trigger); if (chats == null) { return(false); } foreach (var chat in chats) { string definedLanguage = CommandBucket.Get.GetValue(mensaBotEntities, DatabaseUtilities.LanguageTag, chat.ChannelId, chat.ConversationId); if (definedLanguage == null) { definedLanguage = "en"; } CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(definedLanguage); CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo(definedLanguage); string[] results = CommandBucket.Get.CreateMensaReply(Dates.today, null, mensaBotEntities, chat.ChannelId, chat.ConversationId, true); ConnectorClient connector2 = new ConnectorClient(new Uri(chat.ServiceURL)); foreach (var result in results) { connector2.Conversations.SendToConversationAsync( new Activity { Type = ActivityTypes.Message, ChannelId = chat.ChannelId, Conversation = new ConversationAccount(id: chat.ConversationId), From = new ChannelAccount(id: "mensa_md_bot", name: "mensa_md_bot"), Text = result }); } } return(chats.Count > 0); }
public string SetStyle(string style, MensaBotEntities mensaBotEntities, string channelId, string conversationId, string serviceURL) { FoodDisplayStyle foodDisplayStyle; if (FoodDisplayStyle.TryParse(style.ToUpper(), out foodDisplayStyle)) { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); if (DatabaseUtilities.AddEntry(DatabaseUtilities.StyleTag, foodDisplayStyle.ToString().ToLower(), mensaBotEntities, channelId, conversationId)) { return(Lang.style_update + ": " + foodDisplayStyle.ToString().ToLower()); } else { return(Lang.style_fail_to_add_database); } } else { return(Lang.style_not_found + ": " + style); } }
public string SetTrigger(MensaBotEntities mensaBotEntities, string trigger, string channelId, string conversationId) { Regex r = new Regex("2[0-3]:[0-5][0-9]|[0-1][0-9]:[0-5][0-9]", RegexOptions.IgnoreCase); Match m = r.Match(trigger); if (!m.Success || trigger.Length != 5) { return(Lang.regex_not_matched + " " + trigger + " " + trigger.Length); } var smoothTime = SmoothTime(trigger); if (DatabaseUtilities.AddEntry(DatabaseUtilities.Trigger, smoothTime, mensaBotEntities, channelId, conversationId)) { return(Lang.set_time_tigger + " " + smoothTime); } else { return(Lang.failed_set_trigger + " " + smoothTime); } }
public static string GetValueBytKey(MensaBotEntities mensaBotEntities, string key, string channelId, string coversationId) { try { var chat = mensaBotEntities.Chats.FirstOrDefault(t => t.ConversationId == coversationId && t.ChannelId == channelId); if (chat == null || chat.Settings == null) { return(null); } if (chat.Settings.Any(s => s.Key == key)) { return(chat.Settings.Single(s => s.Key == key).Value); } } catch (Exception e) { return(null); } return(null); }
public static List <Chat> GetChatTrigger(MensaBotEntities mensaBotEntities, string trigger) { try { var chats = mensaBotEntities.Chats.Where(t => t.Settings.Any()).ToList(); if (chats == null) { return(null); } List <Chat> chatsWithTrigger = new List <Chat>(); foreach (var chat in chats) { var settings = chat.Settings.FirstOrDefault(t => t.Key == DatabaseUtilities.Trigger); if (settings == null) { continue; } if (settings.Value == trigger) { chatsWithTrigger.Add(chat); } } return(chatsWithTrigger); } catch (Exception e) { return(null); } return(null); }
public async Task <HttpResponseMessage> Post([FromBody] Activity activity) { MensaBotEntities mbe = new MensaBotEntities(); string definedLanguage = CommandBucket.Get.GetValue(mbe, DatabaseUtilities.LanguageTag, activity.ChannelId, activity.Conversation.Id); if (definedLanguage == null) { definedLanguage = "en"; } CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(definedLanguage); CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo(definedLanguage); if (activity.Type == ActivityTypes.Message) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); if (string.IsNullOrEmpty(activity.Text) || (!activity.Text.StartsWith("/") && activity.ChannelId.ToLower() == "telegram")) { return(Request.CreateResponse(HttpStatusCode.NoContent)); } bool commandMessage = false; string chatMessage = activity.Text.ToLower().Replace(_botHandle, ""); if (activity.ChannelId.ToLower() == "telegram" || activity.ChannelId.ToLower() == "emulator") { chatMessage = chatMessage.Remove(0, 1); commandMessage = true; } if (chatMessage.StartsWith("start")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.CreateStartMessage())); } if (chatMessage.StartsWith("help")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.CreateHelpMessage())); } if (chatMessage.StartsWith("ping")) { return(await SendResponseMessage(connector, activity, commandMessage, (_random.Next(10) > 8 ? Lang.pong : Lang.not_play_ping_pong))); } if (chatMessage.StartsWith("pong")) { return(await SendResponseMessage(connector, activity, commandMessage, (_random.Next(10) > 8 ? Lang.ping : Lang.not_play_ping_pong))); } if (chatMessage.StartsWith("key") || chatMessage.StartsWith("legende")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.CreateKeyMessage())); } if (chatMessage.StartsWith("deletedata") || chatMessage.StartsWith("stop")) { bool result = DatabaseUtilities.RemoveAllSettingsAndChat(mbe, activity.ChannelId, activity.Conversation.Id); return(await SendResponseMessage(connector, activity, commandMessage, (result == true ? Lang.removed_all_data : Lang.removed_all_data_failed + MessageInterpreter.LineBreak + Lang.failed_sorry))); } if (chatMessage.StartsWith("remove")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.RemoveDefaults(chatMessage, mbe, activity.ChannelId, activity.Conversation.Id))); } if (chatMessage.StartsWith("get mensa") || chatMessage.StartsWith("get canteen")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.GetValue(mbe, DatabaseUtilities.DefaultMensaTag, activity.ChannelId, activity.Conversation.Id))); } if (chatMessage.StartsWith("get filter") || chatMessage.StartsWith("get canteen")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.GetValue(mbe, DatabaseUtilities.IgnoreTags, activity.ChannelId, activity.Conversation.Id))); } if (chatMessage.StartsWith("get language")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.GetValue(mbe, DatabaseUtilities.LanguageTag, activity.ChannelId, activity.Conversation.Id))); } if (chatMessage.StartsWith("set")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.SetDefaults(chatMessage, mbe, activity.ChannelId, activity.Conversation.Id, activity.ServiceUrl))); } if (chatMessage.StartsWith("list canteen") || chatMessage.StartsWith("list mensen")) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.CreateListCanteensMessage())); } //------------------------------------------------------------------------------------------------ //Find mensa commands //------------------------------------------------------------------------------------------------ //Remove(0, 1) string[] messageParts = chatMessage.Split(' '); string[] expectedMessageParts = new string[3]; for (int i = 0; i < messageParts.Length; i++) { expectedMessageParts[i] = messageParts[i]; } bool hasCommand = MessageInterpreter.Get.ContainsCommands(MessageInterType.MAIN_COMMAND, expectedMessageParts[0]); if (!hasCommand) { return(await SendResponseMessage(connector, activity, commandMessage, CommandBucket.Get.CreateUnknownCommand())); } string[] results = CommandBucket.Get.CreateMensaReply(expectedMessageParts[1], expectedMessageParts[2], mbe, activity.ChannelId, activity.Conversation.Id, false); foreach (var result in results) { await connector.Conversations.ReplyToActivityAsync(activity.CreateReply(result)); } return(Request.CreateResponse(HttpStatusCode.OK)); } else if ((activity.Type == ActivityTypes.DeleteUserData)) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); bool result = DatabaseUtilities.RemoveAllSettingsAndChat(mbe, activity.ChannelId, activity.Conversation.Id); return(await SendResponseMessage(connector, activity, false, (result == true ? Lang.removed_all_data : Lang.removed_all_data_failed + MessageInterpreter.LineBreak + Lang.failed_sorry))); } var response = Request.CreateResponse(HttpStatusCode.OK); return(response); }
public string [] CreateMensaReply(string paramFirst, string paramSecond, MensaBotEntities mensaBotEntities, string channelId, string conversationId, bool forceDate) { bool isShortRequest = false; //check if paramFirst is date, if true -> change order if (!string.IsNullOrEmpty(paramFirst) && string.IsNullOrEmpty(paramSecond)) { var isDate = (MessageInterpreter.Get.FindDate(paramFirst) != DateIndex.none); if (isDate) { paramSecond = paramFirst; paramFirst = null; } } if (string.IsNullOrEmpty(paramFirst)) { paramFirst = DatabaseUtilities.GetValueBytKey(mensaBotEntities, DatabaseUtilities.DefaultMensaTag, channelId, conversationId); if (string.IsNullOrEmpty(paramFirst)) { return new string[] { Lang.please_add + " " + MessageInterpreter.MarkBold(Lang.canteen_name) + "!" } } ; else { isShortRequest = true; } } CanteenName canteenName = MessageInterpreter.Get.FindCanteen(paramFirst); if (canteenName == CanteenName.none) { return(new string[] { Lang.canteen_not_found + ": " + MessageInterpreter.MarkBold(paramFirst) }); } try { if (_canteens == null) { CreateCanteenInfo(); } _canteens[(int)canteenName].LoadElements(3); } catch (Exception e) { return(new string[] { Lang.fail_to_load_information + ": " + MessageInterpreter.MarkBold(paramFirst) }); } DateIndex dateIndex = DateIndex.TODAY; if (!string.IsNullOrEmpty(paramSecond)) { dateIndex = MessageInterpreter.Get.FindDate(paramSecond); if (dateIndex == DateIndex.none) { return(new string[] { Lang.date_not_found + " " + MessageInterpreter.MarkBold(paramSecond) }); } } //Find correct date element. DateTime now = DateTime.Now.ToUniversalTime().AddDays((int)dateIndex).AddHours(1); DayElement[] dayElements = null; try { if (isShortRequest && !forceDate) { int maxDays = 3; for (int i = 0; i < maxDays; i++) { if (i == 0 && now.Hour > 16)//TODO read close time via website { continue; } dayElements = _canteens[(int)canteenName].DayElements.FindAll(t => t.Date.Day == now.AddDays(i).Day).ToArray(); if (dayElements != null && dayElements.Length != 0) { break; } } } else { dayElements = _canteens[(int)canteenName].DayElements.FindAll(t => t.Date.Day == now.Day).ToArray(); } } catch (Exception e) { dayElements = null; } if (dayElements == null || dayElements.Length == 0) { return(new string[] { MessageInterpreter.MarkBold(Lang.could_not_find_date + " " + now.ToString("dd.MM.yyyy") + Lang.broken_heart) }); } IEnumerable <FoodTags> filter = null; try { filter = CommandBucket.Get.GetValue(mensaBotEntities, DatabaseUtilities.IgnoreTags, channelId, conversationId) .Split(MessageInterpreter.ParamDivider) .Select(t => Enum.Parse(typeof(FoodTags), t.ToUpper())) .Cast <FoodTags>(); } catch (Exception e) { filter = null; } string[] menuItems = new string[dayElements.Length]; //List all elements for dayElement for (int i = 0; i < dayElements.Length; i++) { menuItems[i] = Lang.menu_for + ":" + MessageInterpreter.LineBreak + MessageInterpreter.MarkBold(_canteens[(int)canteenName].GetDescription(i)) + " " + Lang.menu_for_at + " " + MessageInterpreter.MarkItalic(dayElements[i].Date.ToString("dd.MM.yyyy")) + MessageInterpreter.DrawLine; foreach (var foodElement in dayElements[i].FoodElements) { bool hideElement = false; var tagResult = ""; if (foodElement.Tags != null) { foreach (var tag in foodElement.Tags) { if (tag != null) { if (filter != null && filter.Contains(tag)) { hideElement = true; break; } tagResult += FoodElement.FoodTagsToEmoji(tag) + ","; } else { tagResult += "❎"; } } } if (tagResult.Length > 1) { tagResult = tagResult.Remove(tagResult.Length - 1, 1).ToLower() + ";"; } string warning = null; if (string.IsNullOrEmpty(foodElement.EnglishName.Trim()) && CultureInfo.CurrentCulture.ToString() != (new CultureInfo("de")).ToString()) { warning = MessageInterpreter.MarkItalic(Lang.no_english_available); } FoodDisplayStyle foodDisplayStyle = FoodDisplayStyle.none; string styleString = GetValue(mensaBotEntities, DatabaseUtilities.StyleTag, channelId, conversationId); if (!string.IsNullOrEmpty(styleString)) { if (!FoodDisplayStyle.TryParse(styleString.ToUpper(), out foodDisplayStyle)) { foodDisplayStyle = FoodDisplayStyle.none; } } var tagsDisplay = ""; switch (foodDisplayStyle) { case FoodDisplayStyle.none: case FoodDisplayStyle.MAXIMUM: tagsDisplay = MessageInterpreter.LineBreak + tagResult + (!string.IsNullOrEmpty(foodElement.Cost) ? foodElement.Cost + "€" : "") + MessageInterpreter.DrawLine; break; case FoodDisplayStyle.MINIMUM_NOLINES: tagsDisplay = MessageInterpreter.LineBreak; break; case FoodDisplayStyle.MINIMUM: tagsDisplay = MessageInterpreter.DrawLine; break; case FoodDisplayStyle.INLINE: tagsDisplay = " " + ((tagResult.Length > 1) ? tagResult.Remove(tagResult.Length - 1, 1) : tagResult) + MessageInterpreter.DrawLine; break; } if (!hideElement) { if (CultureInfo.CurrentCulture.ToString() == (new CultureInfo("de")).ToString() || warning != null) { menuItems[i] += MessageInterpreter.MarkBold(foodElement.GermanName) + warning + " " + tagsDisplay; } else { menuItems[i] += MessageInterpreter.MarkBold(MessageInterpreter.FirstCharToUpper(foodElement.EnglishName)) + " " + tagsDisplay; } } } } return(menuItems); }
public string SetDefaults(string activityMessage, MensaBotEntities mensaBotEntities, string channelId, string conversationId, string serviceURL) { if (activityMessage.StartsWith("set help")) { var message = MessageInterpreter.MarkBold(Lang.set_help) + MessageInterpreter.DrawLine + Lang.set_help_canteen + MessageInterpreter.DrawLine + Lang.set_help_filter + MessageInterpreter.DrawLine + Lang.set_help_style + MessageInterpreter.DrawLine + Lang.set_help_trigger + MessageInterpreter.DrawLine + Lang.language_help; return(message); } string[] setMessageParts = activityMessage.Remove(0, 1).ToLower().Split(' '); if (setMessageParts.Length != 3) { return(Lang.set_fail); } bool containsCommand = MessageInterpreter.Get.ContainsCommands(MessageInterType.MAIN_COMMAND, setMessageParts[1]); if (containsCommand) { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); CanteenName canteenName = MessageInterpreter.Get.FindCanteen(setMessageParts[2]); if (canteenName == CanteenName.none) { return(Lang.canteen_not_found + " " + MessageInterpreter.MarkBold(setMessageParts[2])); } return(CommandBucket.Get.SetDefaultCanteen(canteenName, mensaBotEntities, channelId, conversationId, serviceURL)); } if (setMessageParts[1] == "language") { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); var lang = activityMessage.Split(' '); if (lang.Length != 3) { return(Lang.language_help); } return(CommandBucket.Get.SetLanguage(mensaBotEntities, lang[2], channelId, conversationId)); } if (setMessageParts[1] == "trigger") { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); var time = activityMessage.Split(' '); if (time.Length != 3) { return(Lang.fail_so_define_trigger); } return(CommandBucket.Get.SetTrigger(mensaBotEntities, time[2], channelId, conversationId)); } if ((setMessageParts[1].ToLower() == "style")) { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); return(CommandBucket.Get.SetStyle(setMessageParts[2], mensaBotEntities, channelId, conversationId, serviceURL)); } if ((setMessageParts[1].ToLower() == "filter")) { DatabaseUtilities.CreateChatEntry(mensaBotEntities, channelId, conversationId, serviceURL); var tags = CommandBucket.Get.SetIgnoreTags(setMessageParts[2], MessageInterpreter.ParamDivider); var tagsAdditional = CommandBucket.Get.SetIgnoreTags(setMessageParts[2], MessageInterpreter.ParamDivider); if (tags != null && tagsAdditional != null) { tags.AddRange(tagsAdditional); } if (tags == null && tagsAdditional != null) { tags = tagsAdditional; } if (tags == null) { return(Lang.failed_sorry + MessageInterpreter.LineBreak + Lang.add_tags_failed); } tags = tags.Distinct().ToList(); string enumToString = ""; string displayString = ""; for (int i = 0; i < tags.Count - 1; i++) { enumToString += tags[i].ToString().ToLower() + MessageInterpreter.ParamDivider; displayString += FoodElement.FoodTagsToString(tags[i]) + MessageInterpreter.ParamDivider; } enumToString += tags[tags.Count - 1].ToString().ToLower(); displayString += FoodElement.FoodTagsToString(tags[tags.Count - 1]); if (DatabaseUtilities.AddEntry(DatabaseUtilities.IgnoreTags, enumToString, mensaBotEntities, channelId, conversationId)) { return(Lang.add_tags + " " + MessageInterpreter.MarkBold(displayString)); } else { return(Lang.add_tags_failed + MessageInterpreter.LineBreak + Lang.add_tags_failed); } } return(CommandBucket.Get.CreateUnknownCommand()); }
public string RemoveDefaults(string activityMessage, MensaBotEntities mensaBotEntities, string channelId, string conversationId) { if (activityMessage.StartsWith("remove mensa") || activityMessage.StartsWith("remove canteen")) { string[] msgParts = activityMessage.Split(' '); if (msgParts.Length != 2) { return(Lang.wrong_param_remove_canteen); } bool containsCommand = MessageInterpreter.Get.ContainsCommands(MessageInterType.MAIN_COMMAND, msgParts[1]); if (containsCommand) { return(CommandBucket.Get.CreateUnknownCommand()); } else { DatabaseUtilities.RemoveKey(mensaBotEntities, DatabaseUtilities.DefaultMensaTag, channelId, conversationId); return(Lang.deleted_canteen); } } if (activityMessage.StartsWith("remove filter")) { string[] msgParts = activityMessage.Split(' '); if (msgParts.Length != 2) { return(Lang.wrong_param_remove_filter); } DatabaseUtilities.RemoveKey(mensaBotEntities, DatabaseUtilities.IgnoreTags, channelId, conversationId); return(Lang.deleted_filter); } if (activityMessage.StartsWith("remove style")) { string[] msgParts = activityMessage.Split(' '); if (msgParts.Length != 2) { return(Lang.wrong_param_remove_filter); } DatabaseUtilities.RemoveKey(mensaBotEntities, DatabaseUtilities.StyleTag, channelId, conversationId); return(Lang.deleted_filter); } if (activityMessage.StartsWith("remove trigger")) { string[] msgParts = activityMessage.Split(' '); if (msgParts.Length != 2) { return(Lang.wrong_param_remove_filter); } DatabaseUtilities.RemoveKey(mensaBotEntities, DatabaseUtilities.Trigger, channelId, conversationId); return(Lang.deleted_filter); } if (activityMessage.StartsWith("remove help")) { var message = MessageInterpreter.MarkBold(Lang.remove_help) + MessageInterpreter.DrawLine + Lang.remove_help_canteen + MessageInterpreter.DrawLine + Lang.remove_help_filter + MessageInterpreter.DrawLine + Lang.remove_help_trigger + MessageInterpreter.DrawLine + Lang.remove_help_style + MessageInterpreter.LineBreak; return(message); } return(Lang.command_help_intro + " /remove help " + Lang.help_default_settings_remove); }
public string GetValue(MensaBotEntities mensaBotEntities, string key, string channelId, string conversationId) { return(DatabaseUtilities.GetValueBytKey(mensaBotEntities, key, channelId, conversationId)); }