public static async Task StarGetUserInformationsAsync(global::Telegram.Bot.Types.Message msg) { var step = 1; var userInfos = new List <string>(); var mre = new ManualResetEvent(false); EventHandler <MessageEventArgs> mHandler = (sender, e) => { if (msg.From.Id != e.Message.From.Id) { return; } if (msg.Chat.Id != e.Message.Chat.Id) { return; } if (step == 1) { userInfos.Add(e.Message.Text); step++; TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"Nice! How old are you, {e.Message.Text}?"); } else if (step == 2) { if (e.Message.Text.IsInt()) { userInfos.Add(e.Message.Text); step++; TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, "Where do you live?"); } else { TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, "Only numbers are allowed!"); return; } } else if (step == 3) { userInfos.Add(e.Message.Text); step++; TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, "Is this example helpful?"); } else if (step == 4) { userInfos.Add(e.Message.Text); TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"Okay! Your entered informations:\n\nYour Name: *{userInfos.ElementAt(0)}*\nYour Age: *{userInfos.ElementAt(1)}*\nYou live in: *{userInfos.ElementAt(2)}*\nHelpful example? *{userInfos.ElementAt(3)}*", ParseMode.Markdown); } }; await TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"Hello!\nLet me ask you a few questions\n\nWhat is your name?", ParseMode.Markdown); TelegramBot.TeleBot.OnMessage += mHandler; mre.WaitOne(); TelegramBot.TeleBot.OnMessage -= mHandler; }
private async Task <Message> CreateMessageAsync(global::Telegram.Bot.Types.Message message, ImageInfo image = null) { User usrTask = await GetUserAsync(message.From); return(new Message() { MessageType = message.Type.ToYogurtType(), Text = message.Text, Recipient = usrTask, ImageInfo = image }); }
public static async Task StartRandomConversationAsync(global::Telegram.Bot.Types.Message msg) { var options = new List <string>(); var mre = new ManualResetEvent(false); EventHandler <MessageEventArgs> mHandler = (sender, e) => { if (msg.From.Id != e.Message.From.Id) { return; } if (msg.Chat.Id != e.Message.Chat.Id) { return; } if (e.Message.Text == "/done") { TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"I choose...", ParseMode.Markdown).Wait(); Thread.Sleep(3000); TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"*{options.GetRandom()}*!", ParseMode.Markdown).Wait(); mre.Set(); } else { options.Add(e.Message.Text); } }; await TelegramBot.TeleBot.SendTextMessageAsync(msg.Chat.Id, $"Okay *{msg.From.FirstName}*, now send some options and i will choose a random one.\n\nType /done if you are done.", ParseMode.Markdown); TelegramBot.TeleBot.OnMessage += mHandler; mre.WaitOne(); TelegramBot.TeleBot.OnMessage -= mHandler; TelegramBot.UserIdsAsked.Remove(msg.From.Id); }