IMenuLocationReplyMarkup IKeyboardBuilder <IMenuLocationReplyMarkup> .ForceReply(bool selective) { var keyboard = new ForceReplyMarkup { Selective = selective }; ReplyMarkup = keyboard; return(this); }
/// <summary> /// Generates a response message requesting a subscription key. /// </summary> /// <returns>The response to the message.</returns> private Task <BotMessage> RequestSubscriptionKeyAsync() { var replyMarkup = new ForceReplyMarkup(); var result = new BotMessage { Text = "Provide the subscription key in the reply message to complete the process.", Markup = replyMarkup }; SetVerifySubscriptionState(); return(Task.FromResult(result)); }
public void SendForceReplyMarkupToGroupTest() { ForceReplyMarkup forceReply = new ForceReplyMarkup { Selective = false }; SendMessageResult sendMessageToGroup = mTelegramBot.SendMessage(mChatGroupId, "Please type number", replyMarkup: forceReply); SendMessageResult sendMessageToSuperGroup = mTelegramBot.SendMessage(mChatSuperGroupId, "Please type number", replyMarkup: forceReply); Assert.Multiple(() => { Assert.True(sendMessageToGroup.Ok); Assert.True(sendMessageToSuperGroup.Ok); }); }
public override async Task Action(CallbackQuery callback, TelegramBotClient client) { try { clientBot = client; callbackQuery = callback; ForceReplyMarkup forceReplyMarkup = new ForceReplyMarkup(); await client.SendTextMessageAsync(chatId : callback.Message.Chat.Id, text : "Введіть Дискретний Статистичний Ряд", replyMarkup : forceReplyMarkup); chatId = callback.Message.Chat.Id; await ChartBuilder.SendChart(callback, client); await client.AnswerCallbackQueryAsync(callbackQueryId : callback.Id, text : "OK"); } catch (Exception ex) { Exception exc = ex; string s = new StringBuilder().AppendLine(ex.Message).AppendLine(exc.Source).AppendLine(exc.StackTrace).ToString(); await client.SendTextMessageAsync(chatId : callback.Message.Chat.Id, text : s); } }
IMenuAudioReplyMarkup IReplyMarkupable <IMenuAudioReplyMarkup> .ReplyMarkup(ForceReplyMarkup markup, bool selective) { ReplyMarkup = markup; return(this); }
public static async void Handle(object sender, MessageEventArgs m) { try { var bot = Program.Bot; var chatId = m.Message.Chat.Id; if (m.Message == null) { return; } using (var db = new DbBotContext()) { var user = db.Users.Where(u => u.ChatId == chatId.ToString()).FirstOrDefault(); if (user == null) { user = new Models.User() { ChatId = chatId.ToString(), }; db.Users.Add(user); Console.WriteLine("New user"); } else { Console.WriteLine("user exist"); } user.FirstName = m.Message.From.FirstName; user.LastName = m.Message.From.LastName; //Log var date = m.Message.Date; var message = new Models.Message() { Text = m.Message.Text, User = user, Time = m.Message.Date.ToUniversalTime() }; db.Messages.Add(message); Console.WriteLine(chatId); Console.WriteLine(m.Message.Text); bool relay = true; if (user.State == "addnickname") { if (m.Message.ReplyToMessage != null && m.Message.ReplyToMessage.MessageId == user.WaitMessageId) { relay = false; user.State = null; user.NickName = m.Message.Text; await bot.SendTextMessageAsync(m.Message.Chat, "Nickname set: " + user.NickName); Console.WriteLine("New nickname: " + user.NickName); } else { relay = true; user.State = null; } } user.WaitMessageId = null; var command = GetCommand(m); if (command != null) { relay = false; var commandText = GetEntityText(m, command); if (commandText == "/addnickname") { var forceReply = new ForceReplyMarkup(); var askNickname = await bot.SendTextMessageAsync(m.Message.Chat, "Send me new nickname", replyMarkup : forceReply ); user.State = "addnickname"; user.WaitMessageId = askNickname.MessageId; //Обработка команд } } if (relay) { foreach (var recipient in db.Users.Where(x => x.ChatId != user.ChatId)) { var nick = user.NickName ?? "Anonymous"; await bot.SendTextMessageAsync(recipient.ChatId, "👤 " + nick + ":"); CopyMessage(m.Message, recipient.ChatId); } } db.SaveChanges(); } } catch (Exception e) { Console.WriteLine("Exception"); } }
/// <summary> /// Instantiates a new <see cref="KeyboardBuilder"/>. Contains information to construct an <see cref="IKeyboardBuilder{TBuilder}"/> of the correct type for this <see cref="Command"/> or <see cref="Menus.MenuItem"/>. /// </summary> /// <param name="forceReplyMarkup"></param> /// <param name="selective"></param> internal KeyboardBuilder(ForceReplyMarkup forceReplyMarkup, bool selective = false) { ForceReply = forceReplyMarkup; Selective = selective; }
IMenuMediaGroupReplyMarkup IReplyMarkupable <IMenuMediaGroupReplyMarkup> .ReplyMarkup(ForceReplyMarkup markup, bool selective) { ReplyMarkup = markup; return(this); }