Внесены изменения в обработку отчетов в классе Program.
Добавлена клавиатура для выбора приоритета отчета (низкий, средний, высокий) и логика для обработки выбора.
Удален старый код, устанавливающий приоритет на основе текстовых сообщений.
Добавлен новый метод `DeleteReport` для удаления отчетов из базы данных.
Обновлен SQL-запрос для создания таблицы `Reports`:
значение по умолчанию для поля `Status` изменено с 'В процессе' на 'ожидает'.
Добавлены статические переменные `userReportSteps` и `userReports` для хранения шагов отчетов пользователей и самих отчетов.
Внесены изменения в класс `Program` для улучшения обработки отчетов.
Добавлен класс `Report` с необходимыми свойствами.
Метод `SaveReportToDatabase` теперь принимает объект `Report` и обновлен SQL-запрос.
Добавлена логика для пошагового ввода данных отчета от пользователя.
Упрощен код ожидания отчета и удалены ненужные строки.
Добавлен метод `CreateDatabaseIfNotExists` для создания таблицы `Reports` с новыми полями.
Введены словари `userReportSteps` и `userReports` для отслеживания состояния отчетов.
Внесены значительные изменения в код класса `Program` в файле `Program.cs`.
Удалены класс `ReportData` и перечисление `ReportStep`.
Добавлены новые методы для обработки обновлений от Telegram: `DeletePreviousMessage`, `HandleUpdateAsync` и `SendMainMenu`.
Улучшена логика обработки сообщений с новыми проверками для администраторов и возможностью просмотра отчетов.
Добавлены новые сообщения для пользователей для улучшения взаимодействия и информирования о статусе заявок.
В код добавлен новый класс `ReportData` для хранения информации о заявках, а также перечисляемый тип `ReportStep` для определения этапов создания заявки. Введена структура данных `Dictionary<long, ReportData> reportCreation` для отслеживания процесса создания заявок по идентификатору чата.
Изменен процесс обработки обновлений: теперь при выборе "report" пользователю предлагается выбрать приоритет через клавиатуру. Упрощена логика обработки выбора приоритета и удалены лишние проверки для админ-панели и просмотра заявок.
Обновлены сообщения для пользователей, улучшено взаимодействие и управление состоянием ожидания заявки. Также обновлены кнопки навигации для более интуитивного пользовательского интерфейса.
Удален лишний уровень вложенности при добавлении кнопок с данными обратного вызова и изменено название кнопки "Назад" на "Назад" с указанием на панель администратора. Также улучшено форматирование и структура кода для кнопок статуса, что повысило читаемость и удобство поддержки.
Обновлён текст сообщения с "Панель администратора:" на "Панель администраторов:".
Изменены условия фильтрации статуса отчетов в запросах к базе данных с 'Завершена' на 'закрыта'.
Внесены изменения в класс `Program` в файле `Program.cs`:
- Реализована обработка команды "admin_panel" для проверки прав администратора.
- Добавлена команда "view_archived_reports" с аналогичной проверкой.
- Обновлена клавиатура в методе `SendMainMenu`, добавлена кнопка для панели администратора.
- Создан новый метод `ViewArchivedReports` для просмотра завершенных заявок.
- Обновлен метод `ViewReports` для исключения завершенных заявок из списка.
- Упрощен код в методе `UpdateReportStatus`, убран лишний блок `try-catch`.
Изменен метод удаления заявки в классе `Program`. Теперь результат отправки сообщения об успешном удалении сохраняется в переменной `deletionMessage`, добавлена пауза в 2 секунды перед удалением этого сообщения. Также добавлен вызов метода `ViewReports` для отображения списка заявок после удаления.
Добавлен новый метод `SendMainMenu` для отображения главного меню бота.
Добавлена обработка команды удаления заявки с помощью метода `DeleteReport`, который удаляет заявку из базы данных и отправляет уведомление пользователю. В интерфейсе добавлена кнопка "❌ Удалить заявку". Изменена команда вставки новой заявки для сохранения статуса как 'ожидает'. Также реализован метод `CreateDatabaseIfNotExists` для проверки и создания базы данных при необходимости.
Изменены сообщения для пользователей в классе Program:
- Вместо текстовых уведомлений теперь используются кнопки с клавиатурой "Главное меню" для случаев, когда пользователь не является администратором, а также для авторизации и неверного пароля.
- Добавлен новый метод `SendMainMenu` для отправки главного меню пользователю.
Добавлены методы для удаления сообщений и улучшена логика
В класс `Program` добавлен метод `DeletePreviousMessage` для удаления предыдущих сообщений в чате с логированием.
Изменена логика в `HandleUpdateAsync` для более безопасной обработки нажатий на кнопки, добавлена проверка на `null` для переменной `data`.
Обновлена обработка статусов отчетов с использованием идентификатора сообщения из `callbackQuery`, что улучшает читаемость кода.
Также изменен способ создания клавиатуры для отправки сообщений, что делает код более компактным.
Улучшено форматирование и добавлен метод обновления статуса
Внесены изменения в форматирование массива кнопок в `InlineKeyboardMarkup` для улучшения читаемости. Изменен порядок аргументов в методе `EditMessageText`. Добавлен новый метод `UpdateReportStatus` для обновления статуса отчета с обработкой исключений и подключением к базе данных SQLite.