Esempio n. 1
0
        IMenuLocationReplyMarkup IKeyboardBuilder <IMenuLocationReplyMarkup> .ForceReply(bool selective)
        {
            var keyboard = new ForceReplyMarkup
            {
                Selective = selective
            };

            ReplyMarkup = keyboard;
            return(this);
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        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);
            });
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
 IMenuAudioReplyMarkup IReplyMarkupable <IMenuAudioReplyMarkup> .ReplyMarkup(ForceReplyMarkup markup, bool selective)
 {
     ReplyMarkup = markup; return(this);
 }
Esempio n. 6
0
        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);
 }