diff --git a/Program.cs b/Program.cs index fcaf2fb..a17c9d3 100644 --- a/Program.cs +++ b/Program.cs @@ -214,6 +214,147 @@ class Program await SendMainMenu(botClient, chatId); } } + + // Также добавим обработку команды /removeadmin в секцию обработки текстовых сообщений: + + // В блоке для обработки текстовых сообщений (после if (message.Text.StartsWith("/admin"))) + else if (update.Type == UpdateType.Message && update.Message?.Text != null) + { + var message = update.Message; + Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}"); + + if (message.Text.StartsWith("/admin")) + { + string[] parts = message.Text.Split(' '); + if (parts.Length == 2 && parts[1] == adminPassword) + { + admins.Add(message.Chat.Id); + // Сохраняем администратора в базу данных + await SaveAdminToDatabase(message.Chat.Id); + + var authMessage = await botClient.SendMessage(message.Chat.Id, "✅ Вы авторизованы как администратор!"); + Log.Information($"Новый администратор: {message.Chat.Id}"); + await Task.Delay(2000); + await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); + await SendMainMenu(botClient, message.Chat.Id); + } + else + { + var authMessage = await botClient.SendMessage(message.Chat.Id, "❌ Неверный пароль!"); + await Task.Delay(2000); + await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); + await SendMainMenu(botClient, message.Chat.Id); + } + return; + } + + // В блоке для обработки текстовых сообщений + else if (message.Text == "/admins") + { + if (admins.Contains(message.Chat.Id)) + { + await ShowAdminsList(botClient, message.Chat.Id); + } + else + { + await botClient.SendMessage( + chatId: message.Chat.Id, + text: "⛔ У вас нет прав для просмотра списка администраторов!" + ); + } + } + } + + else if (data == "admin_panel") + { + if (admins.Contains(chatId)) + { + await SendAdminPanel(botClient, chatId); + } + else + { + var authMessage = await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); + Log.Information($"Неавторизованный доступ к админ-панели от {chatId}"); + await Task.Delay(2000); + await botClient.DeleteMessage(chatId, authMessage.MessageId); + await SendMainMenu(botClient, chatId); + } + } + else if (data == "view_reports") + { + if (admins.Contains(chatId)) + { + await ViewReports(botClient, chatId); + } + else + { + var authMessage = await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); + Log.Information($"Неавторизованный доступ к заявкам от {chatId}"); + await Task.Delay(2000); + await botClient.DeleteMessage(chatId, authMessage.MessageId); + await SendMainMenu(botClient, chatId); + } + } + else if (data == "view_archived_reports") + { + if (admins.Contains(chatId)) + { + await ViewArchivedReports(botClient, chatId); + } + else + { + var authMessage = await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); + Log.Information($"Неавторизованный доступ к архиву заявок от {chatId}"); + await Task.Delay(2000); + await botClient.DeleteMessage(chatId, authMessage.MessageId); + await SendMainMenu(botClient, chatId); + } + } + else if (data != null && data.StartsWith("report_")) + { + long reportId = long.Parse(data.Substring(7)); + if (callbackQuery?.Message?.MessageId != null) + { + int messageId = callbackQuery.Message.MessageId; + await ShowReportDetails(botClient, chatId, reportId, messageId); + } + } + else if (data != null && data.StartsWith("status_")) + { + string[] parts = data.Split('_'); + long reportId = long.Parse(parts[1]); + string newStatus = parts[2]; + if (callbackQuery?.Message?.MessageId != null) + { + int messageId = callbackQuery.Message.MessageId; + await UpdateReportStatus(reportId, newStatus, chatId); + await ShowReportDetails(botClient, chatId, reportId, messageId); + } + } + else if (data != null && data.StartsWith("delete_")) + { + long reportId = long.Parse(data.Substring(7)); + await DeleteReport(botClient, chatId, reportId); + } + else if (data == "back_to_list") + { + await ViewReports(botClient, chatId); + } + else if (data == "back_to_admin_panel") + { + await SendAdminPanel(botClient, chatId); + } + else if (data == "main_menu") + { + await SendMainMenu(botClient, chatId); + } + else if (data != null && data.StartsWith("priority_")) + { + string priority = data.Substring(9); + userReports[chatId].Priority = priority; + userReportSteps[chatId] = 2; + await botClient.SendMessage(chatId, "Пожалуйста, укажите кабинет."); + } } } @@ -249,7 +390,7 @@ class Program } // В блоке для обработки текстовых сообщений - if (message.Text == "/admins") + else if (message.Text == "/admins") { if (admins.Contains(message.Chat.Id)) {