уведомления о смене заявки пользователю который оставил заявку

This commit is contained in:
Professional 2025-03-19 23:37:05 +07:00
parent 7a3608d773
commit ae3674bf1b

View File

@ -574,6 +574,23 @@ class Program
}
private static async Task NotifyUserAboutStatusChange(long chatId, long reportId, string newStatus)
{
try
{
string statusEmoji = GetStatusEmoji(newStatus);
await _botClient.SendMessage(
chatId: chatId,
text: $"{statusEmoji} <b>Статус вашей заявки #{reportId} был изменен на: {newStatus}</b>",
parseMode: ParseMode.Html
);
Log.Information($"Уведомление о смене статуса заявки #{reportId} отправлено пользователю {chatId}");
}
catch (Exception ex)
{
Log.Error($"Ошибка при отправке уведомления пользователю о смене статуса: {ex.Message}");
}
}
@ -1055,15 +1072,23 @@ class Program
try
{
string oldStatus = "";
long userChatId = 0;
// Сначала получаем текущий статус
// Сначала получаем текущий статус и chatId пользователя
using (var connection = new SqliteConnection("Data Source=bot.db"))
{
await connection.OpenAsync();
var getStatusCommand = connection.CreateCommand();
getStatusCommand.CommandText = "SELECT Status FROM Reports WHERE Id = @id";
getStatusCommand.CommandText = "SELECT Status, ChatId FROM Reports WHERE Id = @id";
getStatusCommand.Parameters.AddWithValue("@id", reportId);
oldStatus = (await getStatusCommand.ExecuteScalarAsync())?.ToString() ?? string.Empty;
using (var reader = await getStatusCommand.ExecuteReaderAsync())
{
if (await reader.ReadAsync())
{
oldStatus = reader.GetString(0);
userChatId = reader.GetInt64(1);
}
}
}
// Если статус не изменился, прерываем выполнение
@ -1081,6 +1106,9 @@ class Program
// Уведомляем администраторов об изменении статуса
await NotifyAdminsAboutStatusChange(reportId, newStatus, oldStatus, changerId);
// Уведомляем пользователя об изменении статуса
await NotifyUserAboutStatusChange(userChatId, reportId, newStatus);
}
}
catch (Exception ex)
@ -1089,6 +1117,7 @@ class Program
}
}
private static async Task SaveReportToDatabase(long chatId, Report report)
{
string connectionString = "Data Source=bot.db"; // Используем SQLite