В коде реализованы новые команды для администраторов, включая добавление администраторов, просмотр списка администраторов, доступ к админ-панели, а также управление отчетами (просмотр, изменение статуса и удаление). Добавлена обработка неверного пароля при авторизации. Удалена лишняя проверка на команду "/admins" для улучшения читаемости кода.
Удалены блоки кода, связанные с добавлением администратора, просмотром списка администраторов, доступом к админ-панели и обработкой отчетов. Изменен порядок проверки команды "/admins" для улучшения логики обработки текстовых сообщений.
В классе `Program` в файле `Program.cs` реализованы новые функции для управления администраторами, включая просмотр и удаление администраторов из базы данных. Улучшена обработка команд и сообщений для администраторов, добавлены сообщения об ошибках для пользователей без прав доступа. Обновлены визуальные элементы интерфейса для лучшего восприятия. Также добавлена обработка статуса при изменении данных в базе.
Внесены изменения в класс `Program`:
- Инициализация логгера с выводом в консоль и файл.
- Загрузка списка администраторов из базы данных при запуске бота.
- Метод для сохранения администратора в базе данных при авторизации.
- Обновлен метод `UpdateReportStatus` для уведомления администраторов об изменении статуса заявки.
- Добавлены методы для создания и загрузки таблицы администраторов.
- Изменено форматирование сообщений с использованием emoji для статусов и приоритетов.
- Обновлены SQL-запросы для работы с новыми полями и логикой в базе данных.
Удалены клавиатуры с кнопками для пользователей, не являющимися администраторами, при попытке доступа к админ-панели и отчетам. Вместо этого теперь отправляется сообщение об ошибке с задержкой в 2 секунды перед отправкой главного меню.
Изменен процесс авторизации: после успешной авторизации сообщение удаляется через 2 секунды, и пользователю отправляется главное меню. Аналогичные изменения применены для случая неверного пароля.
В класс Program добавлено условие для обработки данных "back_to_archived_list", которое вызывает метод ViewArchivedReports для отображения архивированных отчетов. Также добавлены кнопки "Назад" и "Главное меню" для улучшения навигации пользователя.
Изменён SQL-запрос в классе `Program` для извлечения дополнительных полей: `Priority`, `Room`, `ReporterName` и `DateCreated`. Обновлён код для обработки новых данных и форматирования сообщения. Добавлен новый метод `UpdateReportStatus` для обновления статуса отчета.
Внесены изменения в обработку отчетов в классе 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`.
Улучшена логика обработки сообщений с новыми проверками для администраторов и возможностью просмотра отчетов.
Добавлены новые сообщения для пользователей для улучшения взаимодействия и информирования о статусе заявок.
revert Упрощение структуры кнопок в интерфейсе
Удален лишний уровень вложенности при добавлении кнопок с данными обратного вызова и изменено название кнопки "Назад" на "Назад" с указанием на панель администратора. Также улучшено форматирование и структура кода для кнопок статуса, что повысило читаемость и удобство поддержки.
В код добавлен новый класс `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.