diff --git a/Program.cs b/Program.cs
index 0dc5226..b3d27e8 100644
--- a/Program.cs
+++ b/Program.cs
@@ -1064,6 +1064,64 @@ class Program
+ private static async Task NotifyAdminsAboutWorkAssignment(long reportId, long changerId)
+ {
+ try
+ {
+ // Получаем данные о заявке
+ string description = "";
+ string priority = "";
+ string room = "";
+
+ using (var connection = new SqliteConnection("Data Source=bot.db"))
+ {
+ await connection.OpenAsync();
+ var command = connection.CreateCommand();
+ command.CommandText = "SELECT Description, Priority, Room FROM Reports WHERE Id = @id";
+ command.Parameters.AddWithValue("@id", reportId);
+
+ using (var reader = await command.ExecuteReaderAsync())
+ {
+ if (await reader.ReadAsync())
+ {
+ description = reader.GetString(0);
+ priority = reader.GetString(1);
+ room = reader.GetString(2);
+ }
+ }
+ }
+
+ foreach (var adminId in admins)
+ {
+ // Не уведомляем админа, который сам взял заявку в работу
+ if (adminId == changerId) continue;
+
+ string priorityEmoji = GetPriorityEmoji(priority);
+ var keyboard = new InlineKeyboardMarkup(new[]
+ {
+ new[]
+ {
+ InlineKeyboardButton.WithCallbackData("📝 Посмотреть детали", $"report_{reportId}")
+ }
+ });
+
+ await _botClient.SendMessage(
+ chatId: adminId,
+ text: $"{priorityEmoji} Заявка #{reportId} взята в работу\n\n" +
+ $"Приоритет: {priority}\n" +
+ $"Кабинет: {room}\n" +
+ $"Фрагмент описания: {description.Substring(0, Math.Min(50, description.Length))}...",
+ parseMode: ParseMode.Html,
+ replyMarkup: keyboard
+ );
+ Log.Information($"Уведомление о взятии в работу заявки #{reportId} отправлено администратору {adminId}");
+ }
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"Ошибка при отправке уведомлений о взятии в работу: {ex.Message}");
+ }
+ }
@@ -1109,6 +1167,12 @@ class Program
// Уведомляем пользователя об изменении статуса
await NotifyUserAboutStatusChange(userChatId, reportId, newStatus);
+
+ // Уведомляем администраторов, если заявка взята в работу
+ if (newStatus == "в работе")
+ {
+ await NotifyAdminsAboutWorkAssignment(reportId, changerId);
+ }
}
}
catch (Exception ex)
@@ -1118,6 +1182,7 @@ class Program
}
+
private static async Task SaveReportToDatabase(long chatId, Report report)
{
string connectionString = "Data Source=bot.db"; // Используем SQLite