небольшие улучшения и реализация удаления предыдущего сообщения чтобы не засорять чат
Добавлены методы для удаления сообщений и улучшена логика В класс `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();
|
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)
|
private static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -101,11 +115,14 @@ class Program
|
|||||||
if (callbackQuery?.Message?.MessageId != null)
|
if (callbackQuery?.Message?.MessageId != null)
|
||||||
{
|
{
|
||||||
int messageId = callbackQuery.Message.MessageId;
|
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); // Убираем "часики" у кнопки
|
await botClient.AnswerCallbackQuery(callbackQuery.Id); // Убираем "часики" у кнопки
|
||||||
|
}
|
||||||
|
// Убираем "часики" у кнопки
|
||||||
|
|
||||||
if (data == "report")
|
if (data == "report")
|
||||||
{
|
{
|
||||||
@ -125,19 +142,30 @@ class Program
|
|||||||
Log.Information($"Неавторизованный доступ к заявкам от {chatId}");
|
Log.Information($"Неавторизованный доступ к заявкам от {chatId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (data.StartsWith("report_"))
|
else if (data != null && data.StartsWith("report_"))
|
||||||
{
|
{
|
||||||
long reportId = long.Parse(data.Substring(7));
|
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('_');
|
string[] parts = data.Split('_');
|
||||||
long reportId = long.Parse(parts[1]);
|
long reportId = long.Parse(parts[1]);
|
||||||
string newStatus = parts[2];
|
string newStatus = parts[2];
|
||||||
|
if (callbackQuery?.Message?.MessageId != null)
|
||||||
|
{
|
||||||
|
int messageId = callbackQuery.Message.MessageId;
|
||||||
await UpdateReportStatus(reportId, newStatus);
|
await UpdateReportStatus(reportId, newStatus);
|
||||||
await ShowReportDetails(botClient, chatId, reportId, callbackMessageId);
|
await ShowReportDetails(botClient, chatId, reportId, messageId);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
else if (data == "back_to_list")
|
else if (data == "back_to_list")
|
||||||
{
|
{
|
||||||
await ViewReports(botClient, chatId);
|
await ViewReports(botClient, chatId);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user