diff --git a/Program.cs b/Program.cs index 2329a1f..6658286 100644 --- a/Program.cs +++ b/Program.cs @@ -868,20 +868,73 @@ class Program return; } - var keyboard = new InlineKeyboardMarkup(new[] + // Получаем список всех администраторов из базы данных + var adminsList = new List<(long chatId, string username)>(); + + using (var connection = new SqliteConnection("Data Source=bot.db")) { - new[] { - InlineKeyboardButton.WithCallbackData("👥 Список администраторов", "view_admins") - }, - new[] { - InlineKeyboardButton.WithCallbackData("🔙 Назад к панели администратора", "admin_panel"), - InlineKeyboardButton.WithCallbackData("🏠 Главное меню", "main_menu") + 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)); + } + } } + + // Формируем сообщение + 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: "⚙️ Управление администраторами", + text: messageText.ToString(), parseMode: ParseMode.Html, replyMarkup: keyboard );