diff --git a/Program.cs b/Program.cs index 287244b..e18cae6 100644 --- a/Program.cs +++ b/Program.cs @@ -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