From 7a3608d7731be8cc472186f5fc0e0dd9442232eb Mon Sep 17 00:00:00 2001 From: Professional Date: Wed, 19 Mar 2025 23:28:19 +0700 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B2=D1=81=D0=B5=D1=85=20=D0=B7=D0=B0=D1=8F=D0=B2?= =?UTF-8?q?=D0=BE=D0=BA=20=D1=81=D1=80=D0=B0=D0=B7=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/Program.cs b/Program.cs index e3bbfed..26623aa 100644 --- a/Program.cs +++ b/Program.cs @@ -298,6 +298,48 @@ class Program await SendMainMenu(botClient, chatId); } } + + else if (data == "delete_all_reports") + { + if (admins.Contains(chatId)) + { + var confirmKeyboard = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("✅ Подтвердить", "confirm_delete_all_reports"), + InlineKeyboardButton.WithCallbackData("❌ Отмена", "admin_panel") + } + }); + + await botClient.SendMessage( + chatId: chatId, + text: "Вы уверены, что хотите удалить все заявки? Это действие необратимо.", + replyMarkup: confirmKeyboard + ); + } + else + { + await botClient.SendMessage(chatId, "⛔ У вас нет прав для удаления всех заявок!"); + await Task.Delay(2000); + await SendMainMenu(botClient, chatId); + } + } + + else if (data == "confirm_delete_all_reports") + { + if (admins.Contains(chatId)) + { + await DeleteAllReports(botClient, chatId); + } + else + { + await botClient.SendMessage(chatId, "⛔ У вас нет прав для удаления всех заявок!"); + await Task.Delay(2000); + await SendMainMenu(botClient, chatId); + } + } + else if (data != null && data.StartsWith("report_")) { long reportId = long.Parse(data.Substring(7)); @@ -467,6 +509,36 @@ class Program } } + private static async Task DeleteAllReports(ITelegramBotClient botClient, long chatId) + { + try + { + using (var connection = new SqliteConnection("Data Source=bot.db")) + { + await connection.OpenAsync(); + var command = connection.CreateCommand(); + command.CommandText = "DELETE FROM Reports"; + await command.ExecuteNonQueryAsync(); + + var deletionMessage = await botClient.SendMessage(chatId, "Все заявки успешно удалены."); + Log.Information($"Все заявки удалены пользователем {chatId}."); + + // Ждем 2 секунды + await Task.Delay(2000); + + // Удаляем сообщение об удалении + await botClient.DeleteMessage(chatId, deletionMessage.MessageId); + + // Возвращаемся к панели администратора + await SendAdminPanel(botClient, chatId); + } + } + catch (Exception ex) + { + Log.Error($"Ошибка при удалении всех заявок: {ex.Message}"); + await botClient.SendMessage(chatId, "Ошибка при удалении всех заявок."); + } + } private static async Task DeleteReport(ITelegramBotClient botClient, long chatId, long reportId) @@ -540,6 +612,10 @@ class Program InlineKeyboardButton.WithCallbackData("⚙️ Управление администраторами", "admin_settings") }, new[] + { + InlineKeyboardButton.WithCallbackData("❌ Удалить все заявки", "delete_all_reports") + }, + new[] { InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu") } @@ -554,6 +630,7 @@ class Program } + private static async Task ViewReports(ITelegramBotClient botClient, long chatId) { string connectionString = "Data Source=bot.db";