Добавлены функции подтверждения и отмены отчетов
В код были добавлены методы `ConfirmReport` и `CancelReport` для обработки команд "confirm_report" и "cancel_report". Эти методы сохраняют отчет в базе данных или отменяют его, соответственно. Также обновлена логика обработки шагов отчета и добавлены новые кнопки для подтверждения и отмены в интерфейсе.
This commit is contained in:
parent
b9f4205203
commit
85486c8315
78
Program.cs
78
Program.cs
@ -708,6 +708,14 @@ class Program
|
||||
userReportSteps[chatId] = 2;
|
||||
await botClient.SendMessage(chatId, "Пожалуйста, укажите кабинет.");
|
||||
}
|
||||
else if (data == "confirm_report")
|
||||
{
|
||||
await ConfirmReport(botClient, chatId);
|
||||
}
|
||||
else if (data == "cancel_report")
|
||||
{
|
||||
await CancelReport(botClient, chatId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -808,7 +816,7 @@ class Program
|
||||
}
|
||||
|
||||
else if (usersWaitingForReport.TryGetValue(message.Chat.Id, out bool isWaiting) && isWaiting)
|
||||
{
|
||||
{
|
||||
if (userReportSteps.TryGetValue(message.Chat.Id, out int step))
|
||||
{
|
||||
switch (step)
|
||||
@ -825,25 +833,22 @@ class Program
|
||||
break;
|
||||
case 4:
|
||||
userReports[message.Chat.Id].ReporterName = message.Text;
|
||||
await SaveReportToDatabase(message.Chat.Id, userReports[message.Chat.Id]);
|
||||
var mainMenuKeyboard = new InlineKeyboardMarkup(new[]
|
||||
userReportSteps[message.Chat.Id] = 5;
|
||||
var confirmKeyboard = new InlineKeyboardMarkup(new[]
|
||||
{
|
||||
new[]
|
||||
{
|
||||
InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu")
|
||||
}
|
||||
});
|
||||
new[]
|
||||
{
|
||||
InlineKeyboardButton.WithCallbackData("✅ Подтвердить", "confirm_report"),
|
||||
InlineKeyboardButton.WithCallbackData("❌ Отменить", "cancel_report")
|
||||
}
|
||||
});
|
||||
await botClient.SendMessage(
|
||||
message.Chat.Id,
|
||||
"✅ Спасибо за заявку! Мы обработаем её в ближайшее время.",
|
||||
replyMarkup: mainMenuKeyboard
|
||||
"Пожалуйста, подтвердите отправку заявки:",
|
||||
replyMarkup: confirmKeyboard
|
||||
);
|
||||
usersWaitingForReport[message.Chat.Id] = false;
|
||||
userReportSteps.Remove(message.Chat.Id);
|
||||
userReports.Remove(message.Chat.Id);
|
||||
Log.Information($"Заявка пользователя {message.Chat.Id} сохранена в базе данных.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -860,6 +865,49 @@ class Program
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task ConfirmReport(ITelegramBotClient botClient, long chatId)
|
||||
{
|
||||
if (userReports.TryGetValue(chatId, out var report))
|
||||
{
|
||||
await SaveReportToDatabase(chatId, report);
|
||||
var mainMenuKeyboard = new InlineKeyboardMarkup(new[]
|
||||
{
|
||||
new[]
|
||||
{
|
||||
InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu")
|
||||
}
|
||||
});
|
||||
await botClient.SendMessage(
|
||||
chatId: chatId,
|
||||
text: "✅ Спасибо за заявку! Мы обработаем её в ближайшее время.",
|
||||
replyMarkup: mainMenuKeyboard
|
||||
);
|
||||
usersWaitingForReport[chatId] = false;
|
||||
userReportSteps.Remove(chatId);
|
||||
userReports.Remove(chatId);
|
||||
Log.Information($"Заявка пользователя {chatId} сохранена в базе данных.");
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task CancelReport(ITelegramBotClient botClient, long chatId)
|
||||
{
|
||||
usersWaitingForReport[chatId] = false;
|
||||
userReportSteps.Remove(chatId);
|
||||
userReports.Remove(chatId);
|
||||
await botClient.SendMessage(
|
||||
chatId: chatId,
|
||||
text: "❌ Заявка отменена.",
|
||||
replyMarkup: new InlineKeyboardMarkup(new[]
|
||||
{
|
||||
new[]
|
||||
{
|
||||
InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu")
|
||||
}
|
||||
})
|
||||
);
|
||||
Log.Information($"Заявка пользователя {chatId} отменена.");
|
||||
}
|
||||
|
||||
private static async Task DeleteAllReports(ITelegramBotClient botClient, long chatId)
|
||||
{
|
||||
try
|
||||
|
Loading…
x
Reference in New Issue
Block a user