фикс просрочки уведомлений

This commit is contained in:
107 2025-03-20 11:52:14 +07:00
parent 8eba4a48bd
commit c71c6f1fd3

View File

@ -92,6 +92,9 @@ class Program
private static async Task MonitorReportStatus(long reportId, CancellationToken token)
{
// Ждем 15 секунд перед первой проверкой
await Task.Delay(15000, token);
while (!token.IsCancellationRequested)
{
try
@ -101,9 +104,9 @@ class Program
await connection.OpenAsync();
var command = connection.CreateCommand();
command.CommandText = @"
SELECT Status
FROM Reports
WHERE Id = @id";
SELECT Status
FROM Reports
WHERE Id = @id";
command.Parameters.AddWithValue("@id", reportId);
var status = (string?)await command.ExecuteScalarAsync();
@ -133,6 +136,7 @@ class Program
}
}
private static async Task DeletePreviousMessage(ITelegramBotClient botClient, long chatId, int messageId)
{
try
@ -1451,6 +1455,13 @@ class Program
{
await NotifyAdminsAboutWorkAssignment(reportId, changerId);
}
// Перезапускаем мониторинг, если статус изменился обратно на "ожидает"
if (newStatus == "ожидает")
{
var cts = new CancellationTokenSource();
_ = Task.Run(() => MonitorReportStatus(reportId, cts.Token));
}
}
}
catch (Exception ex)
@ -1462,6 +1473,7 @@ class Program
private static async Task SaveReportToDatabase(long chatId, Report report)
{
string connectionString = "Data Source=bot.db"; // Используем SQLite