コード例 #1
0
ファイル: Program.cs プロジェクト: Vitkin123/notesBot
        private static async void OnCallBackQueryReceived(object sender, CallbackQueryEventArgs e)
        {
            var buttonText = e.CallbackQuery.Data;
            var name       = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}";
            var id         = e.CallbackQuery.From.Id;

            try
            {
                // await botClient.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"{name} нажал {buttonText}");
            }
            catch (Telegram.Bot.Exceptions.InvalidParameterException exception)
            {
                Console.WriteLine(exception);
                throw;
            }

            var onEdit = false; //Следит за режимом инлайн клавиатуры для редактирования заметки

            switch (buttonText)
            {
            case "Добавить заметку":
                isAddingMode = true;     //Говорит о том что следущее сообщение довавить в бд

                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     "Ок, сейчас отправь заметку, которую хочешь сохранить      ");

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : backlInlineKeyboard);

                break;

            case "Отменить":
                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     WelcomeText);

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : startInlineKeyboard);

                break;

            case "Домой":
                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     WelcomeText);

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : startInlineKeyboard);

                break;

            case "Что нового?":

                var res = $"{await Weather.WeatherSender()}\n{await News.Currency()}";

                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     res);

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : backlInlineKeyboard);

                break;

            case "Показать  список заметок":
                await Firebase.DataSender(e.CallbackQuery, botClient, onEdit);

                break;

            case "☰":
                onEdit = true;
                await Firebase.DataSender(e.CallbackQuery, botClient, onEdit);

                break;

            case "Установить помидор":


                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     "Установлен помидор на 2 часа ");

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : pomadoroInlineKeyboard);


                Pomodoro.IsWorking = true;
                Pomodoro.Timer(e.CallbackQuery, botClient);
                break;

            case "Сбросить помидор":
                Pomodoro.IsWorking = false;
                Pomodoro.Timer(e.CallbackQuery, botClient);

                await botClient.AnswerCallbackQueryAsync(e.CallbackQuery.Id, "Помидор сброшен");

                await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id,
                                                     WelcomeText, replyMarkup : startInlineKeyboard);

                break;

            case "Состояние помидора":

                await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id,
                                                     $"Прошло {Pomodoro.ReturnTimerStatus()} минут");

                break;

            case "Помидор":


                await botClient.EditMessageTextAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId,
                                                     "Выберите опцию");

                await botClient.EditMessageReplyMarkupAsync(e.CallbackQuery.From.Id,
                                                            e.CallbackQuery.Message.MessageId, replyMarkup : pomadoroInlineKeyboard);

                break;

            default:
                await Firebase.DataRemover(e.CallbackQuery);

                onEdit = true;
                await Firebase.DataSender(e.CallbackQuery, botClient, onEdit);

                break;
            }
        }