From 59f90aaa5ccf220bb4c52dba3eccd83985d3b573 Mon Sep 17 00:00:00 2001 From: 107 <107@DESKTOP-UP8U7M2> Date: Thu, 20 Mar 2025 12:11:21 +0700 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=BD=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B8=20=D1=83=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BE=20=D0=BF=D1=80=D0=BE=D1=81=D1=80=D0=BE?= =?UTF-8?q?=D1=87=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/Program.cs b/Program.cs index f2f5ea9..7ea57f5 100644 --- a/Program.cs +++ b/Program.cs @@ -92,8 +92,8 @@ class Program private static async Task MonitorReportStatus(long reportId, CancellationToken token) { - // Ждем 15 секунд перед первой проверкой - await Task.Delay(15000, token); + // Ждем 1 час перед первой проверкой + await Task.Delay(TimeSpan.FromHours(1), token); while (!token.IsCancellationRequested) { @@ -104,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(); @@ -117,12 +117,23 @@ class Program return; } - foreach (var adminId in admins) + var getAdminsCommand = connection.CreateCommand(); + getAdminsCommand.CommandText = "SELECT ChatId, NotifyOnPendingReports FROM Admins"; + using (var reader = await getAdminsCommand.ExecuteReaderAsync()) { - await _botClient.SendMessage( - chatId: adminId, - text: $"⚠️ Заявка #{reportId} остается в статусе 'Ожидает'." - ); + while (await reader.ReadAsync()) + { + long adminId = reader.GetInt64(0); + bool notifyOnPendingReports = reader.GetInt32(1) == 1; + + if (notifyOnPendingReports) + { + await _botClient.SendMessage( + chatId: adminId, + text: $"⚠️ Заявка #{reportId} остается в статусе 'Ожидает'." + ); + } + } } } } @@ -131,12 +142,13 @@ class Program Log.Error($"Ошибка при мониторинге статуса заявки #{reportId}: {ex.Message}"); } - // Ждем 15 секунд перед следующей проверкой - await Task.Delay(15000, token); + // Ждем 1 час перед следующей проверкой + await Task.Delay(TimeSpan.FromHours(1), token); } } + private static async Task DeletePreviousMessage(ITelegramBotClient botClient, long chatId, int messageId) { try @@ -1370,6 +1382,7 @@ class Program + private static async Task NotifyAdminsAboutWorkAssignment(long reportId, long changerId) { try