diff --git a/Program.cs b/Program.cs index d1308da..a9b2e27 100644 --- a/Program.cs +++ b/Program.cs @@ -158,6 +158,19 @@ class Program await SendMainMenu(botClient, chatId); } } + else if (data == "view_admins") + { + if (admins.Contains(chatId)) + { + await ShowAdminsList(botClient, chatId); + } + else + { + await botClient.SendMessage(chatId, "⛔ У вас нет прав для просмотра администраторов!"); + await Task.Delay(2000); + await SendMainMenu(botClient, chatId); + } + } else if (data != null && data.StartsWith("removeadmin_")) { long adminIdToRemove = long.Parse(data.Substring(11).Replace("_", "")); @@ -854,73 +867,20 @@ class Program return; } - // Получаем список всех администраторов из базы данных - var adminsList = new List<(long chatId, string username)>(); - - using (var connection = new SqliteConnection("Data Source=bot.db")) + var keyboard = new InlineKeyboardMarkup(new[] { - await connection.OpenAsync(); - var command = connection.CreateCommand(); - command.CommandText = "SELECT ChatId FROM Admins"; - - using (var reader = await command.ExecuteReaderAsync()) - { - while (await reader.ReadAsync()) - { - long adminId = reader.GetInt64(0); - string username = "Неизвестно"; - - // Пытаемся получить имя пользователя - try - { - var user = await botClient.GetChat(adminId); - username = user.Username ?? user.FirstName ?? "Неизвестно"; - } - catch - { - // Если возникает ошибка при получении информации о пользователе, - // просто используем "Неизвестно" - } - - adminsList.Add((adminId, username)); - } - } + new[] { + InlineKeyboardButton.WithCallbackData("👥 Список администраторов", "view_admins") + }, + new[] { + InlineKeyboardButton.WithCallbackData("🔙 Назад к панели администратора", "admin_panel"), + InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu") } - - // Формируем сообщение - if (adminsList.Count == 0) - { - await botClient.SendMessage( - chatId: chatId, - text: "⚠️ В системе нет зарегистрированных администраторов." - ); - return; - } - - var buttons = new List(); - var messageText = new System.Text.StringBuilder(); - messageText.AppendLine("📋 Список администраторов:\n"); - - for (int i = 0; i < adminsList.Count; i++) - { - var (adminId, username) = adminsList[i]; - messageText.AppendLine($"{i + 1}. {username} (ID: {adminId})"); - - buttons.Add(new[] { - InlineKeyboardButton.WithCallbackData($"❌ Удалить {username}", $"removeadmin_{adminId}") - }); - } - - buttons.Add(new[] { - InlineKeyboardButton.WithCallbackData("🔙 Назад", "admin_panel"), - InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu") }); - var keyboard = new InlineKeyboardMarkup(buttons); - await botClient.SendMessage( chatId: chatId, - text: messageText.ToString(), + text: "⚙️ Управление администраторами", parseMode: ParseMode.Html, replyMarkup: keyboard ); @@ -928,10 +888,6 @@ class Program catch (Exception ex) { Log.Error($"Ошибка при отображении настроек администраторов: {ex.Message}"); - await botClient.SendMessage( - chatId: chatId, - text: "❌ Произошла ошибка при отображении настроек администраторов." - ); } }