Esempio n. 1
0
 // Выключение таймера работнику
 public static InlineKeyboardMarkup OffTimerOfEmployee() => new InlineKeyboardMarkup(
     new[]
 {
     new []
     {
         InlineKeyboardButton.WithCallbackData("Выключить таймер")
     },
     new []
     {
         InlineKeyboardButton.WithCallbackData("<< Выбор девушки")
     }
 });
Esempio n. 2
0
        //
        // ----------------------- Набор меню для Работника -----------------------
        //

        // Главное меню рабочего
        public static InlineKeyboardMarkup MainMenuOfEmployee() => new InlineKeyboardMarkup(
            new[]
        {
            new []
            {
                InlineKeyboardButton.WithCallbackData("Выбрать рабочий день")
            },
            new []
            {
                InlineKeyboardButton.WithCallbackData("Показать статистику")
            }
        });
Esempio n. 3
0
 public async Task SendVetoRequestAsync(Player player)
 {
     var replyKeyboardMarkup = new InlineKeyboardMarkup(new InlineKeyboardButton[]
     {
         InlineKeyboardButton.WithCallbackData("Ya", $"{ChatId}:SingleVote:Ya"),
         InlineKeyboardButton.WithCallbackData("Nein", $"{ChatId}:SingleVote:Nein")
     }
                                                        );
     await Bot.Instance.SendTextMessageAsync(
         chatId : player.User.Id,
         text : "Хотите воспользоваться правом вето?",
         replyMarkup : replyKeyboardMarkup);
 }
Esempio n. 4
0
 public async Task SendChoiceAsync(Player voting, List <Player> except = null, string txt = "Выберите")
 {
     var replyKeyboardMarkup = new InlineKeyboardMarkup(
         Players.Except(except ?? Enumerable.Empty <Player>()).Select(player
                                                                      => InlineKeyboardButton.WithCallbackData(
                                                                          string.Join(" ", player.User.FirstName, player.User.LastName),
                                                                          $"{ChatId}:Choice:{player.User.Id}"))
         );
     var mes = await Bot.Instance.SendTextMessageAsync(
         chatId : voting.User.Id,
         text : txt,
         replyMarkup : replyKeyboardMarkup);
 }
        /// <summary>
        /// Вызывает команду
        /// </summary>
        /// <param name="message">принимает сообщение</param>
        /// <param name="client">Ссылка на экземпляр бота</param>
        public async void Execute(Message message, TelegramBotClient client)
        {
            var chatId    = message.Chat.Id;
            var messageId = message.MessageId;
            //var keyboard = new InlineKeyboardMarkup
            //(
            //    new InlineKeyboardButton[][]
            //    {
            //    // First row
            //        new InlineKeyboardButton[]
            //        {
            //            // First column
            //            InlineKeyboardButton.WithCallbackData("one","callback1"),
            //            // Second column
            //            InlineKeyboardButton.WithCallbackData("two","callback2"),
            //        },
            //    }
            //);
            var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(new[]
            {
                new [] // first row
                {
                    InlineKeyboardButton.WithUrl("1.1", "www.pornhub.com"),
                    InlineKeyboardButton.WithCallbackData("1.2", "callback1"),
                },
                new [] // second row
                {
                    InlineKeyboardButton.WithCallbackData("2.1", "callback2"),
                    InlineKeyboardButton.WithCallbackData("2.2"),
                }
            });

            await client.SendTextMessageAsync(chatId, "Жамкни!", replyMarkup : keyboard);

            client.OnCallbackQuery += async(object sender, Telegram.Bot.Args.CallbackQueryEventArgs ev) =>
            {
                var CBQMessage = ev.CallbackQuery.Message;
                if (ev.CallbackQuery.Data == "callback1")
                {
                    await client.AnswerCallbackQueryAsync(ev.CallbackQuery.Id, "Ты выбрал " + ev.CallbackQuery.Data, true);
                }
                else
                if (ev.CallbackQuery.Data == "callback2")
                {
                    await client.SendTextMessageAsync(CBQMessage.Chat.Id, "тест", replyToMessageId : CBQMessage.MessageId);

                    await client.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // отсылаем пустое, чтобы убрать "часики" на кнопке
                }
            };
        }
Esempio n. 6
0
        private static async void TelegramBotClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var bot     = (TelegramBotClient)sender;
            var message = e.CallbackQuery;

            Parse();
            await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, downloads);

            var inlineKeyboard = new InlineKeyboardMarkup(
                InlineKeyboardButton.WithCallbackData("Да!")
                );

            await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "Еще?", replyMarkup : inlineKeyboard);
        }
Esempio n. 7
0
        private static async Task ListarHotelesAsync(long chatId, string filtro, string valor)
        {
            List <Hotel> hoteles = GetHotelesFromAPI();

            switch (filtro)
            {
            case "Clasificación":
                hoteles = hoteles.Where(hotel => hotel.Clasificacion == Int32.Parse(valor)).ToList <Hotel>();
                break;

            case "Provincia":
                hoteles = hoteles.Where(hotel => hotel.vProvincia.Equals(valor)).ToList <Hotel>();
                break;
            }

            if (hoteles.Count() == 0)
            {
                await Bot.SendTextMessageAsync(
                    chatId : chatId,
                    text : "No existen hoteles que cumplan con el filtro seleccionado"
                    );
            }

            foreach (Hotel h in hoteles)
            {
                var ubicacion = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData(
                            text: "Ubicación",
                            callbackData: h.CedulaJuridica),
                    }
                });

                await Bot.SendPhotoAsync(
                    chatId : chatId,
                    photo : h.FotoPerfil,
                    caption :
                    "<b>Nombre: </b>" + h.Nombre + "\n" +
                    "<b>Puntuación: </b>" + PuntuacionAEstrellas(h.Clasificacion) + "\n" +
                    "<b>Descripción: </b>" + h.Descripcion + "\n" +
                    "<b>Ubicación: </b>" + h.vProvincia + ", " + h.vCanton + ", " + h.vDistrito + "\n" +
                    "<b>Teléfono: </b>" + h.Telefonos + "\n",
                    parseMode : ParseMode.Html,
                    replyMarkup : ubicacion
                    );
            }
        }
Esempio n. 8
0
        private static async void OnInlineButtonHandlet(object sender, CallbackQueryEventArgs e)
        {
            var msg = e.CallbackQuery.Message;

            msg.ReplyMarkup = null;

            bool properly = e.CallbackQuery.Data.Contains("True");

            string[] answersMsg = GetAnswersCorrectAndUncorrect(e.CallbackQuery.Data, properly);

            string correctAnswer = answersMsg[0];
            string answer        = properly ? answersMsg[0] : answersMsg[1];

            string textMsg;

            if (properly)
            {
                textMsg = $@"✅ Правильно
Ваш ответ: {correctAnswer}";
            }
            else
            {
                textMsg = $@"❌ Неправильно
Ваш ответ: {answer}
Правильный ответ: {correctAnswer}";
            }

            await client.EditMessageTextAsync(e.CallbackQuery.Message.Chat.Id, e.CallbackQuery.Message.MessageId, $@"{msg.Text}
{textMsg}");

            anEquationAndAnswers.FormAnEquationAndAnswers(); //Создаётся новое уравнение и ответы

            string[] answers            = anEquationAndAnswers.GetAnswers();
            int      indexCorrectAnswer = anEquationAndAnswers.GetIndexCorrectAnswer();

            InlineKeyboardButton[] ikb = new InlineKeyboardButton[3];

            for (int i = 0; i < answers.Length; i++)
            {
                ikb[i] = InlineKeyboardButton.WithCallbackData(answers[i].ToString(), (i == indexCorrectAnswer) ? $"True|{answers[indexCorrectAnswer]}" : $"False|{answers[indexCorrectAnswer]}|{answers[i]}");
            }

            InlineKeyboardMarkup ikm = new InlineKeyboardMarkup(ikb);

            await client.SendTextMessageAsync(msg.Chat.Id, anEquationAndAnswers.GetEquation(), replyMarkup : ikm);
        }
Esempio n. 9
0
 public async void Search()
 {
     var inlineKeyboard = new InlineKeyboardMarkup(new[]
     {
         new[]
         {
             InlineKeyboardButton.WithCallbackData("Боевик", "action"),
             InlineKeyboardButton.WithCallbackData("Комедия", "comedy")
         },
         new[]
         {
             InlineKeyboardButton.WithCallbackData("Детектив", "detectiv"),
             InlineKeyboardButton.WithCallbackData("Фантастика", "fantastic")
         }
     });
     await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Выбери жанр фильма", replyMarkup : inlineKeyboard);
 }
Esempio n. 10
0
        public async Task SendVoteAsync(string txt)
        {
            var replyKeyboardMarkup = new InlineKeyboardMarkup(new InlineKeyboardButton[]
            {
                InlineKeyboardButton.WithCallbackData("Ya", $"{ChatId}:Vote:Ya"),
                InlineKeyboardButton.WithCallbackData("Nein", $"{ChatId}:Vote:Nein")
            }
                                                               );

            foreach (var player in Players.Where(player => player.IsAlive))
            {
                await Bot.Instance.SendTextMessageAsync(
                    chatId : player.User.Id,
                    text : txt,
                    replyMarkup : replyKeyboardMarkup);
            }
        }
Esempio n. 11
0
        private static async void BotOnMessageReceived(object sender, MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            string name = $"{message.From.FirstName} {message.From.LastName}";

            Console.WriteLine($"{name} отправил сообщение: '{message.Text}'");

            switch (message.Text)
            {
            case "/start":
                var keyborad = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Абитуриент", "Абитуриент"),
                        InlineKeyboardButton.WithCallbackData("Бакалавриат", "Бакалавриат"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Преподаватель", "Преподаватель"),
                        InlineKeyboardButton.WithCallbackData("Местоположение корпусов SU", "МК")
                    }
                });

                await Bot.SendTextMessageAsync(message.Chat.Id, "Выберите раздел", replyMarkup : keyborad);

                break;

            default:
                var    responce = apiAi.TextRequest(message.Text);
                string answer   = responce.Result.Fulfillment.Speech;
                if (answer == "")
                {
                    answer = "Прости, я тебя не понял";
                }
                await Bot.SendTextMessageAsync(message.From.Id, answer);

                break;
            }
        }
Esempio n. 12
0
        public InlineKeyboardMarkup GetMarkup()
        {
            var rows   = (int)Math.Ceiling((double)buttons.Count / BUTTONS_IN_ROW);
            var board  = new List <InlineKeyboardButton> [rows];
            var markup = new InlineKeyboardMarkup(board);

            for (int i = 0; i < rows; i++)
            {
                var button = new InlineKeyboardButton[BUTTONS_IN_ROW < buttons.Count ? BUTTONS_IN_ROW : buttons.Count];

                for (int j = 0; j < button.Length; j++)
                {
                    button[j] = InlineKeyboardButton.WithCallbackData(buttons.Dequeue());
                }
                board[i] = button.ToList();
            }
            return(markup);
        }
Esempio n. 13
0
        private static async void TelegramBotClient_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var bot     = (TelegramBotClient)sender;
            var message = e.Message;

            if (message.Text == "/start")
            {
                var inlineKeyboard = new InlineKeyboardMarkup(
                    InlineKeyboardButton.WithCallbackData("Да!")
                    );

                await bot.SendTextMessageAsync(e.Message.Chat.Id, "Привет. Хочешь расскажу анекдот?", replyMarkup : inlineKeyboard);
            }
            else
            {
                return;
            }
        }
Esempio n. 14
0
        public void Send(User creator, string question, string[] answers)
        {
            Creator  = creator;
            Question = question;

            int i = 0;
            var inlineKeyboard = new InlineKeyboardMarkup(answers.Select(a => InlineKeyboardButton.WithCallbackData(a.Trim())).Split(2));

            Message msg = bot.SendTextMessageAsync(
                ChatId,
                Question,
                replyMarkup: inlineKeyboard).Result;

            // id сообщения с голосованием
            MessageId = msg.MessageId;

            results = answers.ToDictionary(a => a.Trim(), a => new List <string>());
            voters  = new List <string>();
        }
Esempio n. 15
0
        //                                                                               //
        // ----------------------- Набор меню для Администратора ----------------------- //
        //                                                                               //

        // Меню для Администратора
        public static InlineKeyboardMarkup MainMenuForAdmin() => new InlineKeyboardMarkup(
            new[]
        {
            new []
            {
                InlineKeyboardButton.WithCallbackData("Выбрать девушку"),
            },
            new []
            {
                InlineKeyboardButton.WithCallbackData("Добавить новую девушку"),
            },
            new []
            {
                InlineKeyboardButton.WithCallbackData("Удалить девушку из списка"),
            },
            new []
            {
                InlineKeyboardButton.WithCallbackData("Оповестить всех 'Я в сети'")
            }
        });
Esempio n. 16
0
 private static async void Hello(int messageId)
 {
     var inlineKeyboard = new InlineKeyboardMarkup(
         new[]
     {
         new[]
         {
             InlineKeyboardButton.WithUrl("Анкета на сайте",
                                          "https://docs.google.com/forms/d/e/1FAIpQLSfQxh28HQ600V2cVyh6GXDaQUzVQpnjkWQwEQkmQwkYfnyRpg/viewform"),
             InlineKeyboardButton.WithCallbackData("Заполнить у бота")
         },
         new[]
         {
             InlineKeyboardButton.WithUrl("Положение о персональных данных",
                                          "https://www.auchan.ru/pokupki/personalnye-dannye.html?ndspecialkey=1")
         }
     });
     await _botClient.SendTextMessageAsync(messageId, "Выберите пункт меню",
                                           replyMarkup : inlineKeyboard);
 }
Esempio n. 17
0
        private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            var name = message.From.FirstName;

            Console.WriteLine(message.Text + " от " + name);
            switch (message.Text)
            {
            case "/start":
                var text = "Команда для вызова меню - /menu";
                await Bot.SendTextMessageAsync(e.Message.From.Id, text);

                break;

            case "/menu":
                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("Кинопоиск", "https://www.kinopoisk.ru/"),
                        InlineKeyboardButton.WithUrl("IMDb", "https://www.imdb.com/")
                    },
                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Поиск случайного фильма")
                    }
                });
                await Bot.SendTextMessageAsync(message.From.Id, "Выбери пункт меню", replyMarkup : inlineKeyboard);

                break;

            default:
                break;
            }
        }
Esempio n. 18
0
        public static IEnumerable <InlineKeyboardButton[]> GetInlineKeyboard(IReadOnlyList <string> stringArray)
        {
            var rows    = stringArray.Count / 4;
            var haveMod = false;
            var columns = 4;
            var mod     = stringArray.Count % 4;

            if (mod != 0)
            {
                rows++;
                haveMod = true;
            }
            var k = 0;
            var keyboardInline = new InlineKeyboardButton[rows][];

            for (var i = 0; i < rows; i++)
            {
                InlineKeyboardButton[] keyboardButton;


                if (i == rows - 1 && haveMod)
                {
                    keyboardButton = new InlineKeyboardButton[mod];
                    columns        = mod;
                }
                else
                {
                    keyboardButton = new InlineKeyboardButton[4];
                }

                for (var j = 0; j < columns; j++)
                {
                    keyboardButton[j] = InlineKeyboardButton.WithCallbackData(stringArray[k]);
                    k++;
                }

                keyboardInline[i] = keyboardButton;
            }
            return(keyboardInline);
        }
Esempio n. 19
0
            static async Task StartMessage(Message message)
            {
                await Bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing);

                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    new[] { InlineKeyboardButton.WithCallbackData("Доступные стажировки", "/internships") },
                    new[] { InlineKeyboardButton.WithCallbackData("FAQ", "/faq") },
                    new[] { InlineKeyboardButton.WithCallbackData("Правила приёма", "/rules") },
                });

                await Bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text :  GoogleSheetsInterference.GetHelloMessage()
                    );

                await Bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "Мои команды:",
                    replyMarkup : inlineKeyboard
                    );
            }
Esempio n. 20
0
        static async Task SendInlineKeyboard(Message message)
        {
            await Bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing);

            await Task.Delay(500);

            var inlineKeyboard = new InlineKeyboardMarkup(new[]
            {
                new []
                {
                    InlineKeyboardButton.WithCallbackData("1.1", "1.2"),
                },
                new []
                {
                    InlineKeyboardButton.WithUrl("Залететь на Хабр", "https://habr.com/ru/"),
                }
            });
            await Bot.SendTextMessageAsync(
                chatId : message.Chat.Id,
                text : "choose your destiny",
                replyMarkup : inlineKeyboard
                );
        }
Esempio n. 21
0
        private static async void BotOnMessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            string name = $"{message.From.FirstName} {message.From.LastName}";

            Console.WriteLine($"{name} отправил сообщение: {message.Text}");
            switch (message.Text)
            {
            case "/start":
                string text =
                    @"Список команд:
                        /start - запуск бота
                        /menu - вывод меню
                        /keyboard - ввод с клавиатуры";
                await Bot.SendTextMessageAsync(message.From.Id, text);

                break;

            case "/menu":
                var inlineKeyboard = new InlineKeyboardMarkup(new[] {
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("VK ILUSHA", "https://vk.com/special0ps"),
                        InlineKeyboardButton.WithUrl("VK ANDRUSHA", "https://vk.com/id231468284")
                    },
                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Картинка"),
                        InlineKeyboardButton.WithCallbackData("Видео")
                    }
                });
                await Bot.SendTextMessageAsync(message.From.Id, "Выберите пункт меню", replyMarkup : inlineKeyboard);

                break;

            case "/keyboard":
                var replyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    new[]
                    {
                        new KeyboardButton("Привет"),
                        new KeyboardButton("Как дела?")
                    },
                    new[]
                    {
                        new KeyboardButton("Контакт")
                        {
                            RequestContact = true
                        },
                        new KeyboardButton("Геолокация")
                        {
                            RequestLocation = true
                        }
                    }
                });
                await Bot.SendTextMessageAsync(message.Chat.Id, "Сообщение", replyMarkup : replyKeyboard);

                break;

            default:
                var    response = apiAi.TextRequest(message.Text);
                string answer   = response.Result.Fulfillment.Speech;
                if (answer == "")
                {
                    answer = "Я тебя не понимаю:(";
                }
                await Bot.SendTextMessageAsync(message.From.Id, answer);

                break;
            }
        }
Esempio n. 22
0
        private async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var cbid = e.CallbackQuery.Id;
            var user = e.CallbackQuery.From.Username;
            var cid  = e.CallbackQuery.Message.Chat.Id;
            var mid  = e.CallbackQuery.Message.MessageId;
            var data = e.CallbackQuery.Data;
            var text = e.CallbackQuery.Message.Text;
            var chat = e.CallbackQuery.ChatInstance;

            if (!string.IsNullOrEmpty(data))
            {
                if (data == "yes")
                {
                    Voit++;
                    var inlineKeyboard = new InlineKeyboardMarkup(new[]
                    {
                        new [] // first row
                        {
                            InlineKeyboardButton.WithCallbackData("1.1"),
                            InlineKeyboardButton.WithCallbackData("1.2"),
                        },
                        new [] // second row
                        {
                            InlineKeyboardButton.WithCallbackData("2.1"),
                            InlineKeyboardButton.WithCallbackData("2.2"),
                        }
                    });
                    await bot.AnswerCallbackQueryAsync(cbid, "Ваш голос принят!");

                    await bot.EditMessageTextAsync(cid, mid, $"Всего голосов:\n{Voit}");

                    await bot.EditMessageReplyMarkupAsync(
                        chatId : cid,
                        messageId : mid,
                        replyMarkup : inlineKeyboard
                        );

                    //await bot.EditMessageTextAsync(
                    //    chatId: cid,
                    //    messageId: mid,
                    //    text: text,
                    //    replyMarkup: inline
                    //    );
                }
                else if (data == "no")
                {
                    Voit--;
                    await bot.AnswerCallbackQueryAsync(cbid, "Ваш голос удален!");
                }

                //switch (data)
                //{
                //    case "yes":
                //        await bot.EditMessageTextAsync(cid, mid, $"{text}");
                //        break;
                //    case "no":
                //        await bot.EditMessageTextAsync(cid, mid, $"{data} is pressed");
                //        break;
                //    default:
                //        break;
                //}
            }
        }
Esempio n. 23
0
        private async static void BotOnMessageReceived(object sender, MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            string name = $"{message.From.FirstName } {message.From.LastName}";

            Console.WriteLine($"{name} sent text: '{message.Text}'");


            User            userrr = new User();
            ClassStatusList st     = JsonConvert.DeserializeObject <ClassStatusList>(File.ReadAllText(stpath));

            int        index     = 0;
            bool       contains  = false;
            UserStatus usrstatus = new UserStatus();


            for (int i = 0; i < st.statuses.Count; i++)
            {
                if (st.statuses[i].Id == Convert.ToString(message.From.Id))
                {
                    contains  = true;
                    usrstatus = st.statuses[i];
                    index     = i;
                    break;
                }
            }

            if (contains == false)
            {
                usrstatus.status1 = 0;
                usrstatus.status2 = 0;
                usrstatus.Id      = Convert.ToString(message.From.Id);
                st.statuses.Add(usrstatus);
            }



            switch (st.statuses[index].status1)
            {
            case 0:
            {
                switch (message.Text)
                {
                case "/start":
                {
                    string text =
                        @"Список команд:
/gettoptracks - Топ-10 треков
/gettrack - Найти трек по названию
/getartistinfo - Информация об исполнителе
/getfavorite - Список избранных";

                    await Bot.SendTextMessageAsync(message.From.Id, text);

                    usrstatus.status1  = 0;
                    usrstatus.status2  = 0;
                    usrstatus.Id       = Convert.ToString(message.From.Id);
                    st.statuses[index] = usrstatus;
                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));
                    break;
                }

                case "/gettoptracks":
                {
                    var json = JsonConvert.SerializeObject(userrr);
                    var data = new StringContent(json, Encoding.UTF8, "application/json");

                    userrr.Id = Convert.ToString(message.From.Id);

                    HttpClient client   = new HttpClient();
                    var        response = await client.PostAsync($"https://localhost:44348/api/Music/GetTopTracks", data);

                    string      result   = response.Content.ReadAsStringAsync().Result;
                    ClassTracks useritem = JsonConvert.DeserializeObject <ClassTracks>(result);

                    List <List <InlineKeyboardButton> > inlineKeyboardList = new List <List <InlineKeyboardButton> >();


                    foreach (var track in useritem.tracks.track)
                    {
                        //if (track.url.Length <= 60)
                        {
                            List <InlineKeyboardButton> ts = new List <InlineKeyboardButton>();
                            ts.Add(InlineKeyboardButton.WithUrl(track.name + " - " + track.artist.name, track.url));
                            ts.Add(InlineKeyboardButton.WithCallbackData("+", Convert.ToString(message.From.Id) + "⁜" + track.name + "⁜" + track.artist.name));
                            inlineKeyboardList.Add(ts);
                        }
                    }
                    var inline = new InlineKeyboardMarkup(inlineKeyboardList);

                    await Bot.SendTextMessageAsync(message.From.Id, "Топ-10 треков:", replyMarkup : inline);


                    usrstatus.status1  = 0;
                    usrstatus.status2  = 1;
                    st.statuses[index] = usrstatus;

                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                    break;
                }

                case "/getartistinfo":
                {
                    await Bot.SendTextMessageAsync(e.Message.Chat.Id, "Введите исполнителя");

                    st.statuses[index].status1 = 1;
                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                    break;
                }

                case "/gettrack":
                {
                    await Bot.SendTextMessageAsync(e.Message.Chat.Id, "Введите название песни");


                    st.statuses[index].status1 = 2;
                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                    break;
                }

                case "/getfavorite":
                {
                    userrr.Id = Convert.ToString(message.From.Id);

                    var json = JsonConvert.SerializeObject(userrr);
                    var data = new StringContent(json, Encoding.UTF8, "application/json");


                    HttpClient client   = new HttpClient();
                    var        response = await client.PostAsync($"https://localhost:44348/api/Music/GetFavorite", data);

                    string result = response.Content.ReadAsStringAsync().Result;

                    if (result == "BAD")
                    {
                        await Bot.SendTextMessageAsync(e.Message.Chat.Id, "Списка нету");

                        break;
                    }


                    List <SearchTrackMain> js = JsonConvert.DeserializeObject <List <SearchTrackMain> >(result);

                    List <List <InlineKeyboardButton> > inlineKeyboardList = new List <List <InlineKeyboardButton> >();


                    foreach (var track in js)
                    {
                        List <InlineKeyboardButton> ts = new List <InlineKeyboardButton>();
                        ts.Add(InlineKeyboardButton.WithUrl(track.name + " - " + track.artist, track.url));
                        ts.Add(InlineKeyboardButton.WithCallbackData("х", Convert.ToString(message.From.Id) + "⁜" + track.name + "⁜" + track.artist));
                        inlineKeyboardList.Add(ts);
                    }
                    var inline = new InlineKeyboardMarkup(inlineKeyboardList);
                    if (js.Count != 0)
                    {
                        await Bot.SendTextMessageAsync(message.From.Id, "Список фаворитов:", replyMarkup : inline);
                    }
                    else
                    {
                        await Bot.SendTextMessageAsync(message.From.Id, "Список фаворитов пуст.");
                    }

                    usrstatus.status1  = 0;
                    usrstatus.status2  = 2;
                    st.statuses[index] = usrstatus;

                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                    break;
                }

                default:
                {
                    break;
                }
                }
                break;
            }

            case 1:     //для getartistinfo
            {
                try
                {
                    st.statuses[index].status1 = 0;
                    File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                    userrr.Id     = Convert.ToString(message.From.Id);
                    userrr.Artist = e.Message.Text;

                    var json = JsonConvert.SerializeObject(userrr);
                    var data = new StringContent(json, Encoding.UTF8, "application/json");

                    HttpClient client   = new HttpClient();
                    var        response = await client.PostAsync($"https://localhost:44348/api/Music/GetArtistInfo", data);

                    string result = response.Content.ReadAsStringAsync().Result;
                    ClassListArtistInfo useritem = JsonConvert.DeserializeObject <ClassListArtistInfo>(result);

                    await Bot.SendTextMessageAsync(message.From.Id, $"Artist: {useritem.artist.name}\n\nBio: {useritem.artist.bio.summary}.");

                    break;
                }
                catch
                {
                    await Bot.SendTextMessageAsync(message.From.Id, "Было введено некорректное имя исполнителя.");

                    break;
                }
            }

            case 2:     //для gettrack
            {
                st.statuses[index].status1 = 0;
                st.statuses[index].status2 = 1;

                userrr.Id   = Convert.ToString(message.From.Id);
                userrr.Name = e.Message.Text;

                var json = JsonConvert.SerializeObject(userrr);
                var data = new StringContent(json, Encoding.UTF8, "application/json");


                HttpClient client   = new HttpClient();
                var        response = await client.PostAsync($"https://localhost:44348/api/Music/GetTrack", data);

                string       result   = response.Content.ReadAsStringAsync().Result;
                ClassResults useritem = JsonConvert.DeserializeObject <ClassResults>(result);

                List <List <InlineKeyboardButton> > inlineKeyboardList = new List <List <InlineKeyboardButton> >();


                foreach (var track in useritem.results.trackmatches.track)
                {
                    if (track.url.Length <= 60)
                    {
                        List <InlineKeyboardButton> ts = new List <InlineKeyboardButton>();
                        ts.Add(InlineKeyboardButton.WithUrl(track.name + " - " + track.artist, track.url));
                        ts.Add(InlineKeyboardButton.WithCallbackData("+", Convert.ToString(message.From.Id) + "⁜" + track.name + "⁜" + track.artist));
                        inlineKeyboardList.Add(ts);
                    }
                }
                var inline = new InlineKeyboardMarkup(inlineKeyboardList);
                if (result == "It's bad")
                {
                    await Bot.SendTextMessageAsync(message.From.Id, "Ничего не найдено. Попробуйте ввести название по-другому.");
                }
                else
                {
                    await Bot.SendTextMessageAsync(message.From.Id, "Найденные треки:", replyMarkup : inline);
                }
                File.WriteAllText(stpath, JsonConvert.SerializeObject(st));

                break;
            }

            default:
            {
                goto case 0;
            }
            }
        }
Esempio n. 24
0
        private static async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            var message = messageEventArgs.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            switch (message.Text.Split(' ').First())
            {
            // send inline keyboard
            case "/inline":
                await Bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing);

                await Task.Delay(500);     // simulate longer running task

                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    new []     // first row
                    {
                        InlineKeyboardButton.WithCallbackData("First"),
                        InlineKeyboardButton.WithCallbackData("Second"),
                    },
                    new []     // second row
                    {
                        InlineKeyboardButton.WithCallbackData("First"),
                        InlineKeyboardButton.WithCallbackData("Second"),
                    }
                });

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Choose",
                    replyMarkup : inlineKeyboard);

                break;

            // send custom keyboard
            case "/keyboard":
                ReplyKeyboardMarkup ReplyKeyboard = new[]
                {
                    new[] { "First", "Second" },
                    new[] { "First", "Second" },
                };

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Choose",
                    replyMarkup : ReplyKeyboard);

                break;

            // request location or contact
            case "/request":
                var RequestReplyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    KeyboardButton.WithRequestLocation("Location"),
                    KeyboardButton.WithRequestContact("Contact"),
                });

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Who or Where are you?",
                    replyMarkup : RequestReplyKeyboard);

                break;

            default:
                const string usage = @"
Usage:
/inline   - send inline keyboard
/keyboard - send custom keyboard
/request  - request location or contact
/subscribe - add to db datas";

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    usage,
                    replyMarkup : new ReplyKeyboardRemove());

                break;
            }
        }
Esempio n. 25
0
        static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
        {
            if (update.Type == UpdateType.Message && update.Message != null && update.Message.Type == MessageType.Text)
            {
                long   chatId      = update.Message.Chat.Id;
                string messageText = update.Message.Text;
                if (messageText == "/start")
                {
                    string menu = "/start - запуск\n/inline - меню\n/keyboard - сообщения\n/clearkeyboard - убрать кнопки";
                    await botClient.SendTextMessageAsync(chatId, menu, cancellationToken : cancellationToken);
                }
                else if (messageText == "/inline")
                {
                    InlineKeyboardMarkup inlineKeyboard = new InlineKeyboardMarkup(new[]
                    {
                        new[]
                        {
                            InlineKeyboardButton.WithUrl("VK", "https://vk.com/mishanya167"),
                            InlineKeyboardButton.WithUrl("LinkedIn", "https://www.linkedin.com/in/%D0%BC%D0%B8%D1%85%D0%B0%D0%B8%D0%BB-%D0%BA%D0%BE%D0%B2%D0%B0%D0%BB%D1%91%D0%B2-79637b164/")
                        },
                        new[]
                        {
                            InlineKeyboardButton.WithCallbackData("Дата и время", "DateTime"),
                            InlineKeyboardButton.WithCallbackData("Картинка", "Photo")
                        }
                    });
                    await botClient.SendTextMessageAsync(chatId, "Выберите пункт меню: ", replyMarkup : inlineKeyboard, cancellationToken : cancellationToken);
                }
                else if (messageText == "/keyboard")
                {
                    ReplyKeyboardMarkup replayKeyBoard = new ReplyKeyboardMarkup(new[]
                    {
                        new[]
                        {
                            new KeyboardButton("Привет"),
                            new KeyboardButton("Как дела?")
                        },
                        new[]
                        {
                            KeyboardButton.WithRequestContact("Контакт"),
                            KeyboardButton.WithRequestLocation("Геолокация")
                        }
                    });
                    await botClient.SendTextMessageAsync(chatId, "Выберите сообщение.", replyMarkup : replayKeyBoard, cancellationToken : cancellationToken);
                }
                else if (messageText == "/clearkeyboard")
                {
                    await botClient.SendTextMessageAsync(chatId, "Кнопки убраны.", replyMarkup : new ReplyKeyboardRemove(), cancellationToken : cancellationToken);
                }
                else
                {
                    SessionsClient sessionsClient = await SessionsClient.CreateAsync();

                    SessionName sessionName = new SessionName("small-talk-srqi", Guid.NewGuid().ToString());
                    QueryInput  queryInput  = new QueryInput
                    {
                        Text = new TextInput
                        {
                            Text         = messageText,
                            LanguageCode = "ru-Ru"
                        }
                    };
                    DetectIntentResponse response = await sessionsClient.DetectIntentAsync(sessionName, queryInput);

                    if (response.QueryResult.FulfillmentMessages.Count > 0)
                    {
                        await botClient.SendTextMessageAsync(chatId, response.QueryResult.FulfillmentText, cancellationToken : cancellationToken);
                    }
                    else
                    {
                        await botClient.SendTextMessageAsync(chatId, "Прости, я тебя не понимаю.", cancellationToken : cancellationToken);
                    }
                }
            }
            if (update.Type == UpdateType.CallbackQuery && update.CallbackQuery.Message != null)
            {
                string data = update.CallbackQuery.Data;
                if (data == "DateTime")
                {
                    await botClient.AnswerCallbackQueryAsync(update.CallbackQuery.Id, DateTime.Now.ToString(), cancellationToken : cancellationToken);
                }
                if (data == "Photo")
                {
                    await botClient.SendPhotoAsync(update.CallbackQuery.Message.Chat.Id, "https://big-rostov.ru/wp-content/uploads/2021/04/i-7-1.jpg", cancellationToken : cancellationToken);
                }
            }
        }
Esempio n. 26
0
        private static async void BotOnMessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            string name = $"{message.From.FirstName} {message.From.LastName}";

            Console.WriteLine($"{name} sent message: {message.Text}");

            switch (message.Text)
            {
            case "/start":
            {
                string text =
                    @"List of commands:
 /start - launch bot;
 /inline - show menu;
 /keyboard - show keyboard;";

                await Bot.SendTextMessageAsync(message.From.Id, text);

                break;
            }

            case "/keyboard":
            {
                var replyKeyboard = new ReplyKeyboardMarkup(new[]
                    {
                        new[]
                        {
                            new KeyboardButton("Привет!"),
                            new KeyboardButton("Как дела?")
                        },
                        new[]
                        {
                            new KeyboardButton("Контакт")
                            {
                                RequestContact = true
                            },
                            new KeyboardButton("Геолокация")
                            {
                                RequestLocation = true
                            }
                        }
                    });

                await Bot.SendTextMessageAsync(message.Chat.Id, "Message",
                                               replyMarkup : replyKeyboard);

                break;
            }

            case "/inline":
            {
                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                    {
                        new[]
                        {
                            InlineKeyboardButton.WithUrl("VK", "https://vk.com/id11833696"),
                            InlineKeyboardButton.WithUrl("Telegram", "https://t.me/trakhimovichilya")
                        },
                        new[]
                        {
                            InlineKeyboardButton.WithCallbackData("картинка"),
                            InlineKeyboardButton.WithCallbackData("видео")
                        }
                    });

                await Bot.SendTextMessageAsync(message.From.Id, "Select menu",
                                               replyMarkup : inlineKeyboard);

                break;
            }

            default:
            {
                var    response = apiAi.TextRequest(message.Text);
                string answer   = response.Result.Fulfillment.Speech;

                if (answer == "")
                {
                    answer = "Прости, я тебя не понял. Я тупой еще :(.";
                }

                await Bot.SendTextMessageAsync(message.From.Id, answer);

                break;
            }
            }
        }
Esempio n. 27
0
        private static async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            var message = messageEventArgs.Message;

            if (message.Type == MessageType.Photo)
            {
                var test = Bot.GetFileAsync(message.Photo[message.Photo.Count() - 1].FileId);
                Console.Write(test.Result);
                var download_url = @"https://api.telegram.org/file/bot<token>/" + test.Result.FilePath;
            }

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            if (message.Text.Equals("1") || message.Text.Equals("2") || message.Text.Equals("3") || message.Text.Equals("4") || message.Text.Equals("5"))
            {
                await ListarHotelesAsync(message.Chat.Id, "Clasificación", message.Text);

                return;
            }

            if (message.Text.Equals("San José") || message.Text.Equals("Cartago") || message.Text.Equals("Alajuela") || message.Text.Equals("Heredia") ||
                message.Text.Equals("Limón") || message.Text.Equals("Puntarenas") || message.Text.Equals("Guanacaste"))
            {
                await ListarHotelesAsync(message.Chat.Id, "Provincia", message.Text);

                return;
            }

            if (message.ReplyToMessage != null && message.ReplyToMessage.Text.Equals("Para listar sus reservas, por favor ingrese su número de cédula"))
            {
                await ListarReservasAsync(message.Chat.Id, message.Text);
            }

            switch (message.Text.Split(' ').First())
            {
            case "/reservas":
                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Mis reservas");

                break;

            case "/ubicacion":
                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Ubicación");

                break;

            case "Todos":
                await ListarHotelesAsync(message.Chat.Id, "Todos", message.Text);

                break;

            case "Estrellas":
                List <string> estrellasHotel = new List <string>
                {
                    "5", "4", "3", "2", "1"
                };

                await Bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "¿Cantidad de estrellas?",
                    replyMarkup : GetReplyKeyboard(estrellasHotel));

                break;

            case "Provincia":
                ReplyKeyboardMarkup ubicacionHotel = new[]
                {
                    new[] { "San José", "Cartago" },
                    new[] { "Alajuela", "Heredia" },
                    new[] { "Limón", "Puntarenas" },
                    new[] { "Guanacaste" }
                };

                await Bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "Seleccione una provincia",
                    replyMarkup : ubicacionHotel);

                break;

            case "/hoteles":
                List <string> filtroHoteles = new List <string>
                {
                    "Todos",
                    "Estrellas",
                    "Ubicación",
                    "Calificación"
                };

                await Bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "¿Cómo desea listar los hoteles?",
                    replyMarkup : GetReplyKeyboard(filtroHoteles));

                break;

            default:
                await Bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing);

                await Task.Delay(5);

                var keyboardEjemplo1 = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData(
                            text: "Hoteles",
                            callbackData: "hoteles"),
                        InlineKeyboardButton.WithCallbackData(
                            text: "Reservas",
                            callbackData: "reservas"),
                    }
                });

                await Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Hola, " + message.Chat.FirstName + " ¿En qué podemos ayudarle?",
                    replyMarkup : keyboardEjemplo1);

                break;
            }
        }
        private async Task BotOnMessageReceived(Message message)
        {
            Console.WriteLine($"Receive message type: {message.Type}");
            if (message.Type != MessageType.Text)
            {
                return;
            }

            var action = (message.Text.Split(' ').First()) switch
            {
                "/inline" => SendInlineKeyboard(message),
                "/keyboard" => SendReplyKeyboard(message),
                "/photo" => SendFile(message),
                "/request" => RequestContactAndLocation(message),
                "/help" => Usage(message),
                _ => Nope(message)
            };
            await action;

            // Send inline keyboard
            // You can process responses in BotOnCallbackQueryReceived handler
            async Task SendInlineKeyboard(Message message)
            {
                await _bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing);

                // Simulate longer running task
                await Task.Delay(500);

                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    // first row
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("1.1", "11"),
                        InlineKeyboardButton.WithCallbackData("1.2", "12"),
                    },
                    // second row
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("2.1", "21"),
                        InlineKeyboardButton.WithCallbackData("2.2", "22"),
                    }
                });
                await _bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "Choose",
                    replyMarkup : inlineKeyboard
                    );
            }

            async Task SendReplyKeyboard(Message message)
            {
                var replyKeyboardMarkup = new ReplyKeyboardMarkup(
                    new KeyboardButton[][]
                {
                    new KeyboardButton[] { "1.1", "1.2" },
                    new KeyboardButton[] { "2.1", "2.2" },
                },
                    resizeKeyboard: true
                    );

                await _bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "Choose",
                    replyMarkup : replyKeyboardMarkup

                    );
            }

            async Task SendFile(Message message)
            {
                await _bot.SendChatActionAsync(message.Chat.Id, ChatAction.UploadPhoto);

                const string filePath = @"Files/tux.png";

                using var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                var fileName = filePath.Split(Path.DirectorySeparatorChar).Last();
                await _bot.SendPhotoAsync(
                    chatId : message.Chat.Id,
                    photo : new InputOnlineFile(fileStream, fileName),
                    caption : "Nice Picture"
                    );
            }

            async Task RequestContactAndLocation(Message message)
            {
                var RequestReplyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    KeyboardButton.WithRequestLocation("Location"),
                    KeyboardButton.WithRequestContact("Contact"),
                });
                await _bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : "Who or Where are you?",
                    replyMarkup : RequestReplyKeyboard
                    );
            }

            async Task Usage(Message message)
            {
                const string usage = "Usage:\n" +
                                     "/inline   - send inline keyboard\n" +
                                     "/keyboard - send custom keyboard\n" +
                                     "/photo    - send a photo\n" +
                                     "/request  - request location or contact";
                await _bot.SendTextMessageAsync(
                    chatId : message.Chat.Id,
                    text : usage,
                    replyMarkup : new ReplyKeyboardRemove()
                    );
            }

            Task Nope(Message message)
            {
                return(Task.CompletedTask);
            }
        }
Esempio n. 29
0
        private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            string name = $"{message.From.FirstName} {message.From.LastName}";

            Console.WriteLine($"{name} отправил сообщение :'{message.Text}'");

            switch (message.Text)
            {
            case "/start":
                string text = "@Список команд:                  " +
                              "/start -запуск бота,                    " +
                              " /callback - вывод меню,                  " +
                              "/keyboard - вывод клавиатуры             ";
                await Bot.SendTextMessageAsync(message.From.Id, text);

                break;

            case "/callback":
                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        InlineKeyboardButton.WithUrl("Rozetka", "https://rozetka.com.ua/"),
                        InlineKeyboardButton.WithUrl("Citrus", "https://www.citrus.ua/")
                    },


                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Картинка"),
                        InlineKeyboardButton.WithCallbackData("Видео")
                    }
                });
                await Bot.SendTextMessageAsync(message.From.Id, "Выберите пункт меню", replyMarkup : inlineKeyboard);



                break;

            case "/keyboard":

                var replyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    new[]
                    {
                        new KeyboardButton("Привет"),
                        new KeyboardButton("Как делишки?")
                    },
                    new[]
                    {
                        new KeyboardButton("Контакт")
                        {
                            RequestContact = true
                        },
                        new KeyboardButton("Геолокация")
                        {
                            RequestLocation = true
                        }
                    }
                }
                                                            );
                await Bot.SendTextMessageAsync(message.Chat.Id, "Сообщение", replyMarkup : replyKeyboard);

                break;

            default:
                var    response = apiAi.TextRequest(message.Text);
                string answer   = response.Result.Fulfillment.Speech;
                if (answer == "")
                {
                    answer = "Сорри, но я тебя не понял";
                }
                await Bot.SendTextMessageAsync(message.From.Id, answer);

                break;
            }
        }
Esempio n. 30
0
        private static async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs e)
        {
            var    message = e.CallbackQuery.Message;
            string data    = e.CallbackQuery.Data;

            switch (data)
            {
            case "Абитуриент":
                var keyboard_first = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Как поступить в SU?", "first")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Список документов для поступления", "second")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("В какое время можно подать документы? Можно ли сделать это в субботу или воскресенье?", "third")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Могу ли я подать документы лично, если мне меньше 18 лет? Или обязательно присутствие родителей?", "four")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Контакты приемной комиссии?", "five")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("График работы приемной комиссии?", "six")
                    }
                });

                await Bot.SendTextMessageAsync(message.Chat.Id, e.CallbackQuery.Message.Text, replyMarkup : keyboard_first);

                Bot.OnCallbackQuery += async(object sc, CallbackQueryEventArgs ev) =>
                {
                    var message = ev.CallbackQuery.Message;
                    switch (ev.CallbackQuery.Data)
                    {
                    case "first":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Зарегистрироваться в онлайн режиме по адресу kb.satbayev.university");

                        break;

                    case "second":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "1. Заявление на поступление 2.Аттестат о среднем общем или диплом о начальном профессиональном или среднем профессиональном образовании(оригинал) 3.Фото формата 3х4 – 6шт 4.Медицинская справка по форме 086 - У 5.Прививочная карта по форме 063 6.Снимок флюорографии 7.Документ, подтверждающий преимущественное право 8.Сертификат ЕНТ или комплексного тестирования 9.Свидетельство о присуждении гранта(при его наличии) 10.Копия удостоверении личности 11.Приписное свидетельство ");

                        break;

                    case "third":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Подать документы можно в рабочие часы Приёмной комиссии. Они будут объявлены ближе к старту приёмной кампании.");

                        break;

                    case "four":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Вы можете подать документы и самостоятельно, только не забудьте взять с собой паспорт. Но помните: если вы поступаете на место на коммерческой основе, то заключить договор, будучи несовершеннолетним, вы самостоятельно не сможете — необходимо присутствие родителя. Кроме того, если вам меньше 18, вам обязательно нужно будет принести форму согласия на обработку ваших персональных данных, подписанную родителем или опекуном (без неё документы не примут!).");

                        break;

                    case "five":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Республика Казахстан, г. Алматы, ул. Сатпаева 22а, Главный учебный корпус (ГУК). Вход со стороны ул. Байтурсынова. +7 (727) 292 7301  +7 (727) 292 7779  +7 (727) 320 4112 [email protected]");

                        break;

                    case "six":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "График работы: пн - пт, с 8:30 до 17:30 сб, с 9:00 до 17:00 ");

                        break;
                    }
                };
                break;


            case "Бакалавриат":
                var keyboard_second = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Есть ли общежитие? Какие критерии и требования для получения комнаты в общежитии SU?", "first"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Имеется ли в университете военная кафедра? Есть ли необходимость доплаты за военную кафедру?", "second"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Что такое кредитная технология обучения?", "third"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Какие студентческие сообщества есть в университете?", "forth"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Как вступить в один из таких сообществ?", "fifth"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("При каких обстоятельствах студент лишается гранта", "sixth"),
                    }
                });

                await Bot.SendTextMessageAsync(message.Chat.Id, e.CallbackQuery.Message.Text, replyMarkup : keyboard_second);

                Bot.OnCallbackQuery += async(object sc, CallbackQueryEventArgs ev) =>
                {
                    var message = ev.CallbackQuery.Message;
                    switch (ev.CallbackQuery.Data)
                    {
                    case "firth":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Да, в SU есть общежитие. Для того, чтобы получить место в общежитии необходимо написать заявление, все заявления в конце августа рассматривает комиссия. В первую очередь места предоставляются иногородним первокурсникам для благополучной адаптации и привыканию к новому месту жительства в первый год обучения. Вторым не маловажным условием для получения места в общежитии является материальное положение студента (при наличии подтверждающих документов).");

                        break;

                    case "second":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "В университете имеется военная кафедра, зачисление юношей на военную подготовку производится после 1 курса на конкурсной основе. Для обучения на военной кафедре выделяется государственный заказ.");

                        break;

                    case "third":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Кредитная технология обучения – способ организации учебного процесса, при котором обучающиеся в определенных границах имеют возможность индивидуально планировать последовательность образовательной траектории.");

                        break;

                    case "forth":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "«Жас Отан», «Лига Волонтеров», Дебатные клубы, Enactus, Society of Automotive Engineers, American Association of Petroleum Geologists, Society of Petroleum Engineers");

                        break;

                    case "fifth":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Ежегодно в сентябре проводится «Ярмарка студенческих сообществ», во время которой каждый желающий может открыть и презентовать свое сообщество или вступить в то сообщество, которое ему понравилось.");

                        break;

                    case "sixth":
                        await Bot.SendTextMessageAsync(message.Chat.Id, "Обучающиеся, обладатели образовательных грантов, оставленные на повторный курс обучения, лишаются образовательного гранта и продолжают свое дальнейшее обучение на платной основе. Если годовой gpa будет меньше 1,6 то студент теряет государственный образовательный грант. Если студент в итоге за дисциплину получает удовлетворительную оценку, то студент теряет стипендию.");

                        break;
                    }
                };
                break;


            case "Преподаватель":
                var keyboard_third = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithUrl("Академический календарь", "https://drive.google.com/uc?export=download&id=10Z7T0DhO08kwQLA76YI1aYqkP8ZVxBSK"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithUrl("Скачать форму отчета", "https://drive.google.com/uc?export=download&id=1nEEsECD2od_zsFZlgLMWKUnB3f3VOK0T"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("", "third"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("", "forth"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("", "fifth"),
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("", "sixth"),
                    }
                });
                await Bot.SendTextMessageAsync(message.Chat.Id, e.CallbackQuery.Message.Text, replyMarkup : keyboard_third);

                break;

            case "МК":
                var keyboard_fourth = new InlineKeyboardMarkup(new[]
                {
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Главный учебный корпус", "first")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Горно-металлургический институт имени О. Байконурова", "second")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Медицинский пункт", "third")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Нефтянной корпус", "four")
                    },
                    new []
                    {
                        InlineKeyboardButton.WithCallbackData("Военная кафедра", "five")
                    }
                });

                await Bot.SendTextMessageAsync(message.Chat.Id, e.CallbackQuery.Message.Text, replyMarkup : keyboard_fourth);

                Bot.OnCallbackQuery += async(object sc, CallbackQueryEventArgs ev) =>
                {
                    var message = e.CallbackQuery.Message;
                    switch (ev.CallbackQuery.Data)
                    {
                    case "first":
                        float Latitude1  = 43.236422f;
                        float Longitude1 = 76.929755f;
                        await Bot.SendLocationAsync(message.Chat.Id, Latitude1, Longitude1);

                        break;

                    case "second":
                        float Latitude2  = 43.236520f;
                        float Longitude2 = 76.931572f;
                        await Bot.SendLocationAsync(message.Chat.Id, Latitude2, Longitude2);

                        break;

                    case "third":
                        float Latitude3  = 43.237319f;
                        float Longitude3 = 76.934405f;
                        await Bot.SendLocationAsync(message.Chat.Id, Latitude3, Longitude3);

                        break;

                    case "four":
                        float Latitude4  = 43.237093f;
                        float Longitude4 = 76.931374f;
                        await Bot.SendLocationAsync(message.Chat.Id, Latitude4, Longitude4);

                        break;

                    case "five":
                        float Latitude5  = 43.231572f;
                        float Longitude5 = 76.934406f;
                        await Bot.SendLocationAsync(message.Chat.Id, Latitude5, Longitude5);

                        break;
                    }
                };
                break;
            }

            /*if (buttonText == "Картинка")
             * {
             *  await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://cdn.lifehacker.ru/wp-content/uploads/2019/06/telegram_1560950950.jpg");
             * }
             * else if (buttonText == "Документ")
             * {
             * // await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://drive.google.com/uc?export=download&id=0B3Rr6xomyKzhc09hSW4xOGt2SmlHYl95ZWpRYnVOZkhwa0NJ");
             * }
             *
             * await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}");*/
        }