This commit is contained in:
Professional 2025-03-19 15:54:05 +07:00
parent c15631e4a4
commit 20a14bd7f6

View File

@ -94,52 +94,59 @@ class Program
if (update.Type == UpdateType.CallbackQuery) if (update.Type == UpdateType.CallbackQuery)
{ {
var callbackQuery = update.CallbackQuery; var callbackQuery = update.CallbackQuery;
long chatId = callbackQuery.From.Id; if (callbackQuery?.From != null)
string data = callbackQuery.Data;
int messageId = callbackQuery.Message.MessageId;
await botClient.AnswerCallbackQueryAsync(callbackQuery.Id); // Убираем "часики" у кнопки
if (data == "report")
{ {
usersWaitingForReport[chatId] = true; long chatId = callbackQuery.From.Id;
await botClient.SendMessage(chatId, "Пожалуйста, отправьте описание проблемы."); string? data = callbackQuery.Data;
Log.Information($"Пользователь {chatId} начал создание заявки"); if (callbackQuery?.Message?.MessageId != null)
} {
else if (data == "view_reports") int messageId = callbackQuery.Message.MessageId;
{ // Your existing code here
if (admins.Contains(chatId)) }
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); await ViewReports(botClient, chatId);
} }
else else if (data == "main_menu")
{ {
await botClient.SendMessage(chatId, "⛔ Вы не являетесь администратором!"); await SendMainMenu(botClient, chatId);
Log.Information($"Неавторизованный доступ к заявкам от {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( await botClient.SendMessage(
chatId: message.Chat.Id, chatId: message.Chat.Id,
text: "Привет! Я бот для сбора заявок на ремонт оборудования.", text: "Хай! Я бот для сбора заявок на ремонт оборудования.",
replyMarkup: keyboard replyMarkup: keyboard
); );
Log.Information($"Ответ на команду /start с кнопками отправлен."); Log.Information($"Ответ на команду /start с кнопками отправлен.");
@ -204,6 +211,7 @@ class Program
} }
} }
private static async Task SendMainMenu(ITelegramBotClient botClient, long chatId) private static async Task SendMainMenu(ITelegramBotClient botClient, long chatId)
{ {
var keyboard = new InlineKeyboardMarkup(new[] var keyboard = new InlineKeyboardMarkup(new[]
@ -309,12 +317,13 @@ class Program
} }
}); });
await botClient.EditMessageTextAsync( await botClient.EditMessageText(
chatId: chatId, chatId: chatId,
messageId: messageId, messageId: messageId,
text: $"Заявка #{reportId}\n\nОписание: {description}\nСтатус: {status}", text: $"Заявка #{reportId}\n\nОписание: {description}\nСтатус: {status}",
replyMarkup: statusButtons replyMarkup: statusButtons
); );
} }
} }
} }