using System.ComponentModel; using System.Reflection; namespace Pf2e.Scrapper.Processors.Attributes; /// /// Перечисление для групп обработчиков. /// public enum ProcessorGroupEnum { /// /// Общий обработчик. /// [Description("Общие процессоры")] General, /// /// Обработчик для подготовки данных с сайта Archives of Nethys Pathfinder 2e. /// [Description("Архивы Нефиса: Подготовка")] AonprdPreparation, /// /// Обработчик основных сущностей с сайта Archives of Nethys Pathfinder 2e. /// [Description("Архивы Нефиса: Основные сущности")] AonprdEntities, /// /// Обработчик подклассов с сайта Archives of Nethys Pathfinder 2e. /// [Description("Архивы Нефиса: Подклассы")] AonprdSubclasses, /// /// Обработчик для завершения обработки данных с сайта Archives of Nethys Pathfinder 2e. /// [Description("Архивы Нефиса: Завершение")] AonprdFinalization, /// /// Обработчик для подготовки данных из модуля pf2e для FoundryVTT. /// [Description("Foundry EN: Подготовка")] FoundryEnPreparation, /// /// Обработчик основных сущностей из модуля pf2e для FoundryVTT. /// [Description("Foundry EN: Основные сущности")] FoundryEnEntities, } /// /// Перечисление для типов компендиумов обработчиков. /// public enum ProcessorCompendiumEnum { /// /// Компедиум Архивов Нефиса. /// Aonprd, /// /// Компедиум Foundry EN. /// FoundryEn, } /// /// Перечисление для типов фабрик обработчиков. /// public enum ProcessorFactoryTypeEnum { /// /// Простая фабрика одиночного обработчика. /// Simple, /// /// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума. /// Compendium, /// /// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных. /// Iterator, } /// /// Расширение для перечисления . /// public static class ProcessorGroupEnumExtension { /// /// Получает описание группы обработчика из атрибута . /// /// Перечисление группы обработчика. /// Строка с описанием группы обработчика. public static string GetDescription(this ProcessorGroupEnum group) { return group .GetType() .GetField(group.ToString()) ?.GetCustomAttribute() ?.Description ?? group.ToString(); } }