From eec1c79714bbd96ef1c36e92bff49591bbfe0104 Mon Sep 17 00:00:00 2001 From: Professional Date: Wed, 19 Mar 2025 16:38:09 +0700 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=B1=D0=B0=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 125 ++++++++++++++++++++++++++--------------------------- 1 file changed, 61 insertions(+), 64 deletions(-) diff --git a/Program.cs b/Program.cs index c83a6e8..682d93a 100644 --- a/Program.cs +++ b/Program.cs @@ -122,7 +122,6 @@ class Program { await botClient.AnswerCallbackQuery(callbackQuery.Id); // Убираем "часики" у кнопки } - // Убираем "часики" у кнопки if (data == "report") { @@ -151,7 +150,6 @@ class Program await ShowReportDetails(botClient, chatId, reportId, messageId); } } - else if (data != null && data.StartsWith("status_")) { string[] parts = data.Split('_'); @@ -164,8 +162,6 @@ class Program await ShowReportDetails(botClient, chatId, reportId, messageId); } } - - else if (data == "back_to_list") { await ViewReports(botClient, chatId); @@ -178,72 +174,72 @@ class Program } // Обработка текстовых сообщений - if (update.Type != UpdateType.Message || update.Message?.Text == null) - return; - - var message = update.Message; - Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}"); - - // Обработка команды /admin для авторизации - if (message.Text.StartsWith("/admin")) + if (update.Type == UpdateType.Message && update.Message?.Text != null) { - string[] parts = message.Text.Split(' '); - if (parts.Length == 2 && parts[1] == adminPassword) + var message = update.Message; + Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}"); + + // Обработка команды /admin для авторизации + if (message.Text.StartsWith("/admin")) { - admins.Add(message.Chat.Id); - await botClient.SendMessage(message.Chat.Id, "✅ Вы авторизованы как администратор!"); - Log.Information($"Новый администратор: {message.Chat.Id}"); + string[] parts = message.Text.Split(' '); + if (parts.Length == 2 && parts[1] == adminPassword) + { + admins.Add(message.Chat.Id); + await botClient.SendMessage(message.Chat.Id, "✅ Вы авторизованы как администратор!"); + Log.Information($"Новый администратор: {message.Chat.Id}"); + } + else + { + await botClient.SendMessage(message.Chat.Id, "❌ Неверный пароль!"); + } + return; + } + + if (message.Text == "/start") + { + var keyboard = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("Подать заявку", "report"), + InlineKeyboardButton.WithCallbackData("Просмотр заявок", "view_reports") + } + }); + + await botClient.SendMessage( + chatId: message.Chat.Id, + text: "Привет! Я бот для сбора заявок на ремонт оборудования.", + replyMarkup: keyboard + ); + Log.Information($"Ответ на команду /start с кнопками отправлен."); + } + else if (usersWaitingForReport.TryGetValue(message.Chat.Id, out bool isWaiting) && isWaiting) + { + string problemDescription = message.Text; + await SaveReportToDatabase(message.Chat.Id, problemDescription); + + // Создаем клавиатуру с кнопкой возврата + var keyboard = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") + } + }); + + await botClient.SendMessage( + chatId: message.Chat.Id, + text: "✅ Спасибо за заявку! Мы обработаем её в ближайшее время.", + replyMarkup: keyboard); + + usersWaitingForReport[message.Chat.Id] = false; + Log.Information($"Заявка пользователя {message.Chat.Id} сохранена в базе данных."); } else { - await botClient.SendMessage(message.Chat.Id, "❌ Неверный пароль!"); + await botClient.SendMessage(chatId: message.Chat.Id, text: "ℹ️ Используйте команду /start для начала работы с ботом."); } - return; - } - - if (message.Text == "/start") - { - var keyboard = new InlineKeyboardMarkup(new[] - { - new[] - { - InlineKeyboardButton.WithCallbackData("Подать заявку", "report"), - InlineKeyboardButton.WithCallbackData("Просмотр заявок", "view_reports") - } - }); - - await botClient.SendMessage( - chatId: message.Chat.Id, - text: "Привет! Я бот для сбора заявок на ремонт оборудования.", - replyMarkup: keyboard - ); - Log.Information($"Ответ на команду /start с кнопками отправлен."); - } - else if (usersWaitingForReport.TryGetValue(message.Chat.Id, out bool isWaiting) && isWaiting) - { - string problemDescription = message.Text; - await SaveReportToDatabase(message.Chat.Id, problemDescription); - - // Создаем клавиатуру с кнопкой возврата - var keyboard = new InlineKeyboardMarkup(new[] - { - new[] - { - InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") - } - }); - - await botClient.SendMessage( - chatId: message.Chat.Id, - text: "✅ Спасибо за заявку! Мы обработаем её в ближайшее время.", - replyMarkup: keyboard); - - usersWaitingForReport[message.Chat.Id] = false; - Log.Information($"Заявка пользователя {message.Chat.Id} сохранена в базе данных."); - } - else - { - await botClient.SendMessage(chatId: message.Chat.Id, text: "ℹ️ Используйте кнопки для навигации."); } } catch (Exception ex) @@ -254,6 +250,7 @@ class Program } + private static async Task SendMainMenu(ITelegramBotClient botClient, long chatId) { var keyboard = new InlineKeyboardMarkup(new[]