уведомления о смене заявки пользователю который оставил заявку
This commit is contained in:
parent
7a3608d773
commit
ae3674bf1b
35
Program.cs
35
Program.cs
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user