コード例 #1
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboarButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[BloodTestIndicatorsCommand.InlineKeyboardRowsCount][];

            for (int i = 0, j = 0, k = 1; i < BloodTestIndicatorsCommand.InlineKeyboardRowsCount; i++, j += BloodTestIndicatorsCommand.InlineKeyboardColumnsCount, k += BloodTestIndicatorsCommand.InlineKeyboardColumnsCount)
            {
                // row i
                inlineKeyboarButtons[i] =
                    new[]
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData(BloodTestIndicatorsCommand.IndicatorsList[j], $"{BloodTestIndicatorsCommand.IndicatorsList[j]}{BloodTestIndicatorsCommand.CallbackData}"),
                    // column 2
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData(BloodTestIndicatorsCommand.IndicatorsList[k], $"{BloodTestIndicatorsCommand.IndicatorsList[k]}{BloodTestIndicatorsCommand.CallbackData}")
                };
            }

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboarButtons);
            var chatId        = message.Chat.Id;

            string newBotMessage = "Выберете интересующий Вас показатель:";
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/Bloodtestindicators.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #2
0
        public static Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup createInlineKeyboard(List <string> buttonNames)
        {
            var buttonsRow = new List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton>();

            foreach (var b in buttonNames)
            {
                var button = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton();
                button.Text = b;
                buttonsRow.Add(button);
            }

            var inlineKeyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(buttonsRow);

            return(inlineKeyboard);
        }
コード例 #3
0
        internal override async Task Execute(Message message, TelegramBotClient botClient)
        {
            var keyboardButtons = new[]
            {
                new [] // row 1
                {
                    //column 1
                    new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔙 На главную"),
                    //column 2
                    new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔬 Общий анализ крови")
                },
                new [] // row 2
                {
                    //column 1
                    new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔬 Общий анализ мочи")
                }
            };
            var inlineKeyboardSearchButton = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("🔍 Поиск")
                }
            };

            var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboardButtons)
            {
                ResizeKeyboard = true
            };
            var inlineKeyboardSearch = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardSearchButton);
            var chatId = message.Chat.Id;

            string botMessage       = "Выберете интересующий Вас анализ: ↕️";
            string botSearchMessage = "Или воспользуйтесь кнопкой поиска по другим анализам и показателям";

            await botClient.SendTextMessageAsync(chatId, botMessage, replyToMessageId : message.MessageId, replyMarkup : keyboard);

            await botClient.SendTextMessageAsync(chatId, botSearchMessage, replyMarkup : inlineKeyboardSearch);
        }
コード例 #4
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Лейкоциты* – клетки крови, которые образуются в костном мозге. Основная их функция – бороться с инфекцией и повреждением тканей. Выделяют пять типов лейкоцитов, которые отличаются по внешнему виду и выполняемым функциям: эозинофилы, базофилы, нейтрофилы, лимфоциты и моноциты. Они присутствуют в организме в относительно стабильных пропорциях и, хотя их численность может значительно изменяться в течение дня, в норме обычно остаются в пределах референсных значений. \nЛейкоциты образуются из стволовых клеток костного мозга и в процессе созревания проходят ряд промежуточных стадий, в ходе которых клетка и содержащееся в ней ядро уменьшаются. В кровоток должны попадать только зрелые лейкоциты.Они живут недолго, так что происходит их постоянное обновление. Производство лейкоцитов в костном мозге возрастает в ответ на любое повреждение тканей, это часть нормального воспалительного ответа. Цель воспалительного ответа – отграничение повреждения, удаление вызвавшего его причинного фактора и восстановление ткани.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/leukocytes.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #5
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Базофилы* являются разновидностью лейкоцитов. Они представляют собой самую малую группу и составляют не более 1 % от общей массы лейкоцитов. При обнаружении антигена(аллергена) в базофилах происходит дегрануляция. Другими словами, они выпускают свое содержимое наружу, благодаря чему блокируют аллергены, усиливают кровоток и увеличивают проницаемость сосудов. В результате создается очаг воспаления, к которому устремляются другие гранулоциты(моноциты и эозинофилы) на борьбу с чужеродным элементом. Это и есть главная функция базофилов — вовремя обнаружить и подавить аллергены, не дать им распространиться по всему организму и призвать остальных гранулоцитов к месту воспаления.  Кроме своей главной функции базофилы, благодаря наличию гепарина, участвуют в процессах свертываемости крови, препятствуют образованию тромбов в мелких сосудах легких и печени. Также они осуществляют питание тканей, поддерживают нормальный кровоток в малых кровеносных сосудах и рост новых капилляров.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/basophils.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #6
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Моноциты* – немногочисленные, но по размеру наиболее крупные иммунные клетки организма. \nЭти лейкоциты принимают участие в распознавании чужеродных веществ и обучению других лейкоцитов к их распознаванию.Могут мигрировать из крови в ткани организма.Вне кровеносного русла моноциты изменяют свою форму и преобразуются в макрофаги.Макрофаги могут активно мигрировать к очагу воспаления для того, чтобы принять участие в очищении воспаленной ткани от погибших клеток, лейкоцитов, бактерий. Благодаря такой работе макрофагов создаются все условия для восстановления поврежденных тканей.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/monocytes.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #7
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Лимфоциты* – это один из видов лейкоцитов, особых клеток, которые циркулируют в крови человека и являются главными клетками иммунной системы. \nРазные виды лимфоцитов способны вырабатывать антитела, уничтожать чужеродные агенты(в первую очередь – вирусы, а также бактерии, грибки и простейшие) и пораженные клетки собственного организма, обуславливать развитие аллергических реакций. В детском возрасте происходит распределение и обучение в органах иммунной системы исходно недифференцированных лимфоцитов, это является основой формирования иммунитета. \nВсе лейкоциты, а значит лимфоциты в том числе, образуются в костном мозге, а затем «дозревают» в других органах в зависимости от назначения.Существуют несколько видов лимфоцитов: Т - клетки, В - клетки и NK-клетки.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/lymphocytes.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #8
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Эозинофилы* — один из видов лейкоцитов, клеток иммунной системы, защищающих человеческий организм от паразитов и участвующих в развитии аллергических реакций. \nЭозинофилия крови — это состояние, характеризующееся абсолютным или относительным повышением числа эозинофилов. \nАнализ крови на эозинофилы свидетельствует о наличии различных заболеваний и помогает своевременно начать их лечение.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/eosinophils.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #9
0
        internal override async Task Reply(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData("<< Назад", "Показатели анализа крови")
                }
            };

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardButtons);

            string newBotMessage = "*Нейтрофилы* – самая многочисленная разновидность лейкоцитов. Зрелые сегментоядерные нейтрофилы у здорового взрослого человека составляют 47-72% всех лейкоцитов крови; в анализе крови определяются также незрелые палочкоядерные нейтрофилы, доля которых в норме составляет 1-6%. Повышенное содержание нейтрофилов в крови называется нейтрофилией; пониженное – нейтропенией. Нейтрофилы играют огромную роль в защите организма от инфекционных заболеваний, особенно бактериальных и грибковых. Нейтрофилы способны покидать кровяное русло и устремляться к очагу инфекции, принимая активное участие в развитии воспаления. Они также обладают способностью поглощать и разрушать чужеродные частицы – бактерии и грибы. Этот процесс называется фагоцитозом. Повышенная продукция нейтрофилов и их миграция к очагу инфекции часто являются первым ответом организма на инфекционное заболевание.";
            var    chatId        = message.Chat.Id;
            var    media         = new InputMediaPhoto("https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/neutrophils.jpg");

            await botClient.EditMessageMediaAsync(chatId, message.MessageId, media, replyMarkup : inlineKeyboar);

            await botClient.EditMessageCaptionAsync(chatId, message.MessageId, newBotMessage, replyMarkup : inlineKeyboar, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
        }
コード例 #10
0
        internal override async Task Execute(Message message, TelegramBotClient botClient)
        {
            var keyboardButtons = new[]
            {
                new [] // row 1
                {
                    //column 1
                    new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🧾 Показатели анализа крови"),
                },
                new [] // row 2
                {
                    //column 1
                    new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔙 Назад к анализам")
                }
            };
            var inlineKeyboardSearchButton = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
            {
                // row 1
                new []
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("🔍 Поиск")
                }
            };

            var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboardButtons)
            {
                ResizeKeyboard = true
            };
            var inlineKeyboardSearch = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardSearchButton);
            var chatId = message.Chat.Id;

            string botMessage       = "#Общийанализкрови #ОАК \n🔬🩸 *Общий анализ крови (ОАК)* – это наиболее доступный метод первичной оценки состояния организма, результаты которого, наряду с общим анализом мочи и биохимическим анализом крови, входят в алгоритмы диагностики большинства заболеваний. У здорового человека кровь по своему составу относительно постоянна, но   реагирует практически на любые патологические изменения в организме. Поэтому, чтобы понять, что происходит с человеком, какие исследования назначить в дальнейшем или определиться с лечением, врач, в первую очередь, всегда назначает ОАК. \nЭто исследование также используется в виде профилактического обследования даже при отсутствии каких-либо симптомов и отражает изменения состояния здоровья. Кроме того, ОАК позволяет оценить успешность проведенного лечения.";
            string botSearchMessage = "Не нашли то что искали? Воспользуйтесь кнопкой поиска по другим анализам и показателям";

            await botClient.SendPhotoAsync(chatId, "https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegrammBot/master/Images/bloodanalysis.jpg", botMessage, replyToMessageId : message.MessageId, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : keyboard);

            await botClient.SendTextMessageAsync(chatId, botSearchMessage, replyMarkup : inlineKeyboardSearch);
        }
コード例 #11
0
        public Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup GetInlineKeyboard(string[][] buttons, string[][] callback_data)
        {
            int rows = buttons.Length;

            Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][] keyboardButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[rows][];

            for (int row = 0; row < rows; row++)
            {
                keyboardButtons[row] = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[buttons[row].Length];

                for (int column = 0; column < buttons[row].Length; column++)
                {
                    keyboardButtons[row][column] = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton {
                        Text = buttons[row][column], CallbackData = callback_data[row][column]
                    };
                }
            }


            var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(keyboardButtons);

            return(keyboard);
        }
コード例 #12
0
        internal override async Task Execute(Message message, TelegramBotClient botClient)
        {
            var inlineKeyboarButtons = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[InlineKeyboardRowsCount][];

            for (int i = 0, j = 0, k = 1; i < InlineKeyboardRowsCount; i++, j += InlineKeyboardColumnsCount, k += InlineKeyboardColumnsCount)
            {
                // row i
                inlineKeyboarButtons[i] =
                    new[]
                {
                    // column 1
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData(IndicatorsList[j], $"{IndicatorsList[j]}{CallbackData}"),
                    // column 2
                    Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData(IndicatorsList[k], $"{IndicatorsList[k]}{CallbackData}")
                };
            }

            var inlineKeyboar = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboarButtons);
            var chatId        = message.Chat.Id;

            string botMessage = "Выберете интересующий Вас показатель:";

            await botClient.SendPhotoAsync(chatId, "https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegramBot/master/Images/Bloodtestindicators.jpg", botMessage, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : inlineKeyboar);
        }
コード例 #13
0
ファイル: Telegram.cs プロジェクト: olyaatamanjuk/TelegramBot
        async void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var    worker = sender as BackgroundWorker;
            string key    = "622335668:AAEv62L9dRi4BH6JVyW8gfEg-tCmd-qTRXo";

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                await Bot.SetWebhookAsync("");

                // Callback'и от кнопок
                Bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) =>
                {
                    var message = ev.CallbackQuery.Message;
                    if (ev.CallbackQuery.Data == "callback0")
                    {
                        await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id, "You hav choosen " + ev.CallbackQuery.Data, true);
                    }

                    else if (ev.CallbackQuery.Data.Contains("correctAnswer"))
                    {
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Вірно!", replyToMessageId : message.MessageId);

                        await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id);                        // видаляє очікування (годинник)

                        GetQuestion(Bot, ev, message);
                        string tCountry = ev.CallbackQuery.Data.Replace("correctAnswer", "");
                        BotAs.RightAnswer(tCountry);
                    }

                    else if (ev.CallbackQuery.Data == "wrongAnswer")
                    {
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Емм..Ні. Йдем далі...", replyToMessageId : message.MessageId);

                        await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id);                        // видаляє очікування (годинник)

                        GetQuestion(Bot, ev, message);
                        BotAs.WrongAnswer();
                    }

                    else
                    if (ev.CallbackQuery.Data.Contains("Continent:"))
                    {
                        string tContinent = ev.CallbackQuery.Data.Replace("Continent:", "");
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Хмм, сміливо!", replyToMessageId : message.MessageId);

                        BotAs.ChooseContinent(tContinent);
                        GetQuestion(Bot, ev, message);
                    }
                };

                Bot.OnUpdate += async(object su, Telegram.Bot.Args.UpdateEventArgs evu) =>
                {
                    if (evu.Update.CallbackQuery != null || evu.Update.InlineQuery != null)
                    {
                        return;
                    }
                    var update  = evu.Update;
                    var message = update.Message;
                    if (message == null)
                    {
                        return;
                    }
                    if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
                    {
                        if (message.Text == "/hello")
                        {
                            await Bot.SendTextMessageAsync(message.Chat.Id, "Хелова", replyToMessageId : message.MessageId);
                        }
                        if (message.Text == "/getimage")
                        {
                            await Bot.SendPhotoAsync(message.Chat.Id, "https://static.365info.kz/uploads/2019/03/a346a3729504594579883eeb12a38d80.jpg", "Та й таке!");
                        }

                        if (message.Text == "/stopgame")
                        {
                            await Bot.SendTextMessageAsync(message.Chat.Id, "Гру завершено! Правильних: " + BotAs.RightAnswers + " з " + (BotAs.WrongAnswers + BotAs.RightAnswers), replyToMessageId : message.MessageId);

                            BotAs.OverGame();
                        }

                        if (message.Text == "/capitals")
                        {
                            BotAs.StartGame();
                            List <string> continents = BotAs.GetContinents();
                            continents.Add("Все");

                            Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[] Keys = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[continents.Count];

                            int i = 0;

                            foreach (string continent in continents)
                            {
                                Keys[i] = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton {
                                    Text = continent, CallbackData = "Continent:" + continent
                                };
                                i++;
                            }

                            var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(
                                new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][]
                            {
                                Keys
                            }
                                );

                            await Bot.SendTextMessageAsync(message.Chat.Id, "З чого розпочнемо гру?", replyMarkup : keyboard);
                        }
                    }
                };

                Bot.StartReceiving();
            }
            catch (Telegram.Bot.Exceptions.ApiRequestException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }