diff --git a/Program.cs b/Program.cs index ab4daf8..0772264 100644 --- a/Program.cs +++ b/Program.cs @@ -708,6 +708,14 @@ class Program userReportSteps[chatId] = 2; await botClient.SendMessage(chatId, "Пожалуйста, укажите кабинет."); } + else if (data == "confirm_report") + { + await ConfirmReport(botClient, chatId); + } + else if (data == "cancel_report") + { + await CancelReport(botClient, chatId); + } } } @@ -808,7 +816,7 @@ class Program } else if (usersWaitingForReport.TryGetValue(message.Chat.Id, out bool isWaiting) && isWaiting) - { + { if (userReportSteps.TryGetValue(message.Chat.Id, out int step)) { switch (step) @@ -825,25 +833,22 @@ class Program break; case 4: userReports[message.Chat.Id].ReporterName = message.Text; - await SaveReportToDatabase(message.Chat.Id, userReports[message.Chat.Id]); - var mainMenuKeyboard = new InlineKeyboardMarkup(new[] + userReportSteps[message.Chat.Id] = 5; + var confirmKeyboard = new InlineKeyboardMarkup(new[] { - new[] - { - InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") - } - }); + new[] + { + InlineKeyboardButton.WithCallbackData("✅ Подтвердить", "confirm_report"), + InlineKeyboardButton.WithCallbackData("❌ Отменить", "cancel_report") + } + }); await botClient.SendMessage( message.Chat.Id, - "✅ Спасибо за заявку! Мы обработаем её в ближайшее время.", - replyMarkup: mainMenuKeyboard + "Пожалуйста, подтвердите отправку заявки:", + replyMarkup: confirmKeyboard ); - usersWaitingForReport[message.Chat.Id] = false; - userReportSteps.Remove(message.Chat.Id); - userReports.Remove(message.Chat.Id); - Log.Information($"Заявка пользователя {message.Chat.Id} сохранена в базе данных."); break; - } + } } } } @@ -860,6 +865,49 @@ class Program } } + private static async Task ConfirmReport(ITelegramBotClient botClient, long chatId) + { + if (userReports.TryGetValue(chatId, out var report)) + { + await SaveReportToDatabase(chatId, report); + var mainMenuKeyboard = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") + } + }); + await botClient.SendMessage( + chatId: chatId, + text: "✅ Спасибо за заявку! Мы обработаем её в ближайшее время.", + replyMarkup: mainMenuKeyboard + ); + usersWaitingForReport[chatId] = false; + userReportSteps.Remove(chatId); + userReports.Remove(chatId); + Log.Information($"Заявка пользователя {chatId} сохранена в базе данных."); + } + } + + private static async Task CancelReport(ITelegramBotClient botClient, long chatId) + { + usersWaitingForReport[chatId] = false; + userReportSteps.Remove(chatId); + userReports.Remove(chatId); + await botClient.SendMessage( + chatId: chatId, + text: "❌ Заявка отменена.", + replyMarkup: new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") + } + }) + ); + Log.Information($"Заявка пользователя {chatId} отменена."); + } + private static async Task DeleteAllReports(ITelegramBotClient botClient, long chatId) { try