From 20a14bd7f68dc26ca1cc9593caeac5cfe7023a0a Mon Sep 17 00:00:00 2001 From: Professional Date: Wed, 19 Mar 2025 15:54:05 +0700 Subject: [PATCH] =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 101 +++++++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/Program.cs b/Program.cs index 664d288..9b1cc6f 100644 --- a/Program.cs +++ b/Program.cs @@ -94,52 +94,59 @@ class Program if (update.Type == UpdateType.CallbackQuery) { var callbackQuery = update.CallbackQuery; - long chatId = callbackQuery.From.Id; - string data = callbackQuery.Data; - int messageId = callbackQuery.Message.MessageId; - - await botClient.AnswerCallbackQueryAsync(callbackQuery.Id); // Убираем "часики" у кнопки - - if (data == "report") + if (callbackQuery?.From != null) { - usersWaitingForReport[chatId] = true; - await botClient.SendMessage(chatId, "Пожалуйста, отправьте описание проблемы."); - Log.Information($"Пользователь {chatId} начал создание заявки"); - } - else if (data == "view_reports") - { - if (admins.Contains(chatId)) + long chatId = callbackQuery.From.Id; + string? data = callbackQuery.Data; + if (callbackQuery?.Message?.MessageId != null) + { + int messageId = callbackQuery.Message.MessageId; + // Your existing code here + } + int callbackMessageId = callbackQuery.Message.MessageId; + + await botClient.AnswerCallbackQuery(callbackQuery.Id); // Убираем "часики" у кнопки + + if (data == "report") + { + usersWaitingForReport[chatId] = true; + await botClient.SendMessage(chatId, "Пожалуйста, отправьте описание проблемы."); + Log.Information($"Пользователь {chatId} начал создание заявки"); + } + else if (data == "view_reports") + { + if (admins.Contains(chatId)) + { + await ViewReports(botClient, chatId); + } + else + { + await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); + Log.Information($"Неавторизованный доступ к заявкам от {chatId}"); + } + } + else if (data.StartsWith("report_")) + { + long reportId = long.Parse(data.Substring(7)); + await ShowReportDetails(botClient, chatId, reportId, callbackMessageId); + } + else if (data.StartsWith("status_")) + { + string[] parts = data.Split('_'); + long reportId = long.Parse(parts[1]); + string newStatus = parts[2]; + await UpdateReportStatus(reportId, newStatus); + await ShowReportDetails(botClient, chatId, reportId, callbackMessageId); + } + else if (data == "back_to_list") { await ViewReports(botClient, chatId); } - else + else if (data == "main_menu") { - await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); - Log.Information($"Неавторизованный доступ к заявкам от {chatId}"); + await SendMainMenu(botClient, chatId); } } - else if (data.StartsWith("report_")) - { - long reportId = long.Parse(data.Substring(7)); - await ShowReportDetails(botClient, chatId, reportId, messageId); - } - else if (data.StartsWith("status_")) - { - string[] parts = data.Split('_'); - long reportId = long.Parse(parts[1]); - string newStatus = parts[2]; - await UpdateReportStatus(reportId, newStatus); - await ShowReportDetails(botClient, chatId, reportId, messageId); - } - else if (data == "back_to_list") - { - await ViewReports(botClient, chatId); - } - else if (data == "main_menu") - { - await SendMainMenu(botClient, chatId); - } - return; } // Обработка текстовых сообщений @@ -179,7 +186,7 @@ class Program await botClient.SendMessage( chatId: message.Chat.Id, - text: "Привет! Я бот для сбора заявок на ремонт оборудования.", + text: "Хай! Я бот для сбора заявок на ремонт оборудования.", replyMarkup: keyboard ); Log.Information($"Ответ на команду /start с кнопками отправлен."); @@ -204,6 +211,7 @@ class Program } } + private static async Task SendMainMenu(ITelegramBotClient botClient, long chatId) { var keyboard = new InlineKeyboardMarkup(new[] @@ -309,12 +317,13 @@ class Program } }); - await botClient.EditMessageTextAsync( - chatId: chatId, - messageId: messageId, - text: $"Заявка #{reportId}\n\nОписание: {description}\nСтатус: {status}", - replyMarkup: statusButtons - ); + await botClient.EditMessageText( + chatId: chatId, + messageId: messageId, + text: $"Заявка #{reportId}\n\nОписание: {description}\nСтатус: {status}", + replyMarkup: statusButtons +); + } } }