уведомления о смене заявки пользователю который оставил заявку
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
|
try
|
||||||
{
|
{
|
||||||
string oldStatus = "";
|
string oldStatus = "";
|
||||||
|
long userChatId = 0;
|
||||||
|
|
||||||
// Сначала получаем текущий статус
|
// Сначала получаем текущий статус и chatId пользователя
|
||||||
using (var connection = new SqliteConnection("Data Source=bot.db"))
|
using (var connection = new SqliteConnection("Data Source=bot.db"))
|
||||||
{
|
{
|
||||||
await connection.OpenAsync();
|
await connection.OpenAsync();
|
||||||
var getStatusCommand = connection.CreateCommand();
|
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);
|
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 NotifyAdminsAboutStatusChange(reportId, newStatus, oldStatus, changerId);
|
||||||
|
|
||||||
|
// Уведомляем пользователя об изменении статуса
|
||||||
|
await NotifyUserAboutStatusChange(userChatId, reportId, newStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -1089,6 +1117,7 @@ class Program
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static async Task SaveReportToDatabase(long chatId, Report report)
|
private static async Task SaveReportToDatabase(long chatId, Report report)
|
||||||
{
|
{
|
||||||
string connectionString = "Data Source=bot.db"; // Используем SQLite
|
string connectionString = "Data Source=bot.db"; // Используем SQLite
|
||||||
|
Loading…
x
Reference in New Issue
Block a user