From c71c6f1fd3561935e36993289d36fa2fe9d2f2a8 Mon Sep 17 00:00:00 2001 From: 107 <107@DESKTOP-UP8U7M2> Date: Thu, 20 Mar 2025 11:52:14 +0700 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D1=80=D0=BE=D1=87=D0=BA=D0=B8=20=D1=83=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) 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