diff --git a/Program.cs b/Program.cs index cff3d7a..fcbf913 100644 --- a/Program.cs +++ b/Program.cs @@ -809,26 +809,76 @@ class Program } string adminFullName = adminId > 0 && adminFullNames.ContainsKey(adminId) - ? adminFullNames[adminId] - : "Не назначен"; + ? adminFullNames[adminId] + : "Не назначен"; string priorityEmoji = GetPriorityEmoji(priority); string statusEmoji = GetStatusEmoji(status); - // Остальной код без изменений - // ... + var statusButtons = new InlineKeyboardMarkup(new[] + { + new[] + { + InlineKeyboardButton.WithCallbackData("🟡 Ожидает", $"status_{reportId}_ожидает"), + InlineKeyboardButton.WithCallbackData("🔵 В работе", $"status_{reportId}_в работе") + }, + new[] + { + InlineKeyboardButton.WithCallbackData("🟢 Закрыта", $"status_{reportId}_закрыта") + }, + new[] + { + InlineKeyboardButton.WithCallbackData("❌ Удалить заявку", $"delete_{reportId}") + }, + new[] + { + InlineKeyboardButton.WithCallbackData("Назад", "back_to_list"), + InlineKeyboardButton.WithCallbackData("Главное меню", "main_menu") + } + }); + + string newText = $"Заявка #{reportId}\n\n" + + $"Приоритет: {priorityEmoji} {priority}\n" + + $"Кабинет: {room}\n" + + $"Описание: {description}\n" + + $"ФИО: {reporterName}\n" + + $"Статус: {statusEmoji} {status}\n" + + $"Дата создания: {dateCreated}\n" + + $"Администратор: {adminFullName}"; + + await botClient.SendMessage( + chatId: chatId, + text: newText, + replyMarkup: statusButtons + ); + } + else + { + // Если заявка не найдена + await botClient.SendMessage( + chatId: chatId, + text: $"⚠️ Заявка #{reportId} не найдена!" + ); + Log.Warning($"Заявка #{reportId} не найдена при попытке просмотра деталей."); + await Task.Delay(2000); + await ViewReports(botClient, chatId); } } } } catch (Exception ex) { - Log.Error($"Ошибка: {ex.Message}"); + Log.Error($"Ошибка при отображении деталей заявки #{reportId}: {ex.Message}"); + await botClient.SendMessage( + chatId: chatId, + text: $"Произошла ошибка при загрузке заявки #{reportId}." + ); } } + // Метод для удаления администратора из базы данных private static async Task RemoveAdminFromDatabase(long chatId) {