небольшие улучшения и реализация удаления предыдущего сообщения чтобы не засорять чат
Добавлены методы для удаления сообщений и улучшена логика В класс `Program` добавлен метод `DeletePreviousMessage` для удаления предыдущих сообщений в чате с логированием. Изменена логика в `HandleUpdateAsync` для более безопасной обработки нажатий на кнопки, добавлена проверка на `null` для переменной `data`. Обновлена обработка статусов отчетов с использованием идентификатора сообщения из `callbackQuery`, что улучшает читаемость кода. Также изменен способ создания клавиатуры для отправки сообщений, что делает код более компактным.
This commit is contained in:
parent
209401892e
commit
0161d83b47
40
Program.cs
40
Program.cs
@ -86,6 +86,20 @@ class Program
|
||||
cts.Token.WaitHandle.WaitOne();
|
||||
}
|
||||
|
||||
private static async Task DeletePreviousMessage(ITelegramBotClient botClient, long chatId, int messageId)
|
||||
{
|
||||
try
|
||||
{
|
||||
await botClient.DeleteMessage(chatId, messageId);
|
||||
Log.Information($"Сообщение {messageId} в чате {chatId} удалено.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"Ошибка при удалении сообщения {messageId} в чате {chatId}: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
@ -101,11 +115,14 @@ class Program
|
||||
if (callbackQuery?.Message?.MessageId != null)
|
||||
{
|
||||
int messageId = callbackQuery.Message.MessageId;
|
||||
// Your existing code here
|
||||
await DeletePreviousMessage(botClient, chatId, messageId); // Удаляем предыдущее сообщение
|
||||
}
|
||||
int callbackMessageId = callbackQuery.Message.MessageId;
|
||||
|
||||
if (callbackQuery?.Id != null)
|
||||
{
|
||||
await botClient.AnswerCallbackQuery(callbackQuery.Id); // Убираем "часики" у кнопки
|
||||
}
|
||||
// Убираем "часики" у кнопки
|
||||
|
||||
if (data == "report")
|
||||
{
|
||||
@ -125,19 +142,30 @@ class Program
|
||||
Log.Information($"Неавторизованный доступ к заявкам от {chatId}");
|
||||
}
|
||||
}
|
||||
else if (data.StartsWith("report_"))
|
||||
else if (data != null && data.StartsWith("report_"))
|
||||
{
|
||||
long reportId = long.Parse(data.Substring(7));
|
||||
await ShowReportDetails(botClient, chatId, reportId, callbackMessageId);
|
||||
if (callbackQuery?.Message?.MessageId != null)
|
||||
{
|
||||
int messageId = callbackQuery.Message.MessageId;
|
||||
await ShowReportDetails(botClient, chatId, reportId, messageId);
|
||||
}
|
||||
else if (data.StartsWith("status_"))
|
||||
}
|
||||
|
||||
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);
|
||||
await ShowReportDetails(botClient, chatId, reportId, callbackMessageId);
|
||||
await ShowReportDetails(botClient, chatId, reportId, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
else if (data == "back_to_list")
|
||||
{
|
||||
await ViewReports(botClient, chatId);
|
||||
|
Loading…
x
Reference in New Issue
Block a user