Продолжение рефакторинга (вынесение WPF в отдельный проект)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
@@ -6,7 +7,7 @@ namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
/// Абстрактный аттрибут обработчика.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class AbstractProcessorAttribute(string name) : Attribute
|
||||
public class AbstractProcessorAttribute(string name) : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Название обработчика.
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов компендиумов обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorCompendiumEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Компедиум Архивов Нефиса.
|
||||
/// </summary>
|
||||
Aonprd,
|
||||
|
||||
/// <summary>
|
||||
/// Компедиум Foundry EN.
|
||||
/// </summary>
|
||||
FoundryEn,
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов фабрик обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorFactoryTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Простая фабрика одиночного обработчика.
|
||||
/// </summary>
|
||||
Simple,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума.
|
||||
/// </summary>
|
||||
Compendium,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных.
|
||||
/// </summary>
|
||||
Iterator,
|
||||
}
|
||||
+1
-58
@@ -1,7 +1,7 @@
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
namespace Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для групп обработчиков.
|
||||
@@ -50,60 +50,3 @@ public enum ProcessorGroupEnum
|
||||
[Description("Foundry EN: Основные сущности")]
|
||||
FoundryEnEntities,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов компендиумов обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorCompendiumEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Компедиум Архивов Нефиса.
|
||||
/// </summary>
|
||||
Aonprd,
|
||||
|
||||
/// <summary>
|
||||
/// Компедиум Foundry EN.
|
||||
/// </summary>
|
||||
FoundryEn,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Перечисление для типов фабрик обработчиков.
|
||||
/// </summary>
|
||||
public enum ProcessorFactoryTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Простая фабрика одиночного обработчика.
|
||||
/// </summary>
|
||||
Simple,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать типы данных компедиума.
|
||||
/// </summary>
|
||||
Compendium,
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика для создания обработчиков, которые могут обрабатывать итераторы данных.
|
||||
/// </summary>
|
||||
Iterator,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Расширение для перечисления <see cref="ProcessorGroupEnum"/>.
|
||||
/// </summary>
|
||||
public static class ProcessorGroupEnumExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Получает описание группы обработчика из атрибута <see cref="DescriptionAttribute"/>.
|
||||
/// </summary>
|
||||
/// <param name="group">Перечисление группы обработчика.</param>
|
||||
/// <returns>Строка с описанием группы обработчика.</returns>
|
||||
public static string GetDescription(this ProcessorGroupEnum group)
|
||||
{
|
||||
return group
|
||||
.GetType()
|
||||
.GetField(group.ToString())
|
||||
?.GetCustomAttribute<DescriptionAttribute>()
|
||||
?.Description ?? group.ToString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// Расширение для перечисления <see cref="ProcessorGroupEnum"/>.
|
||||
/// </summary>
|
||||
public static class ProcessorGroupEnumExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Получает описание группы обработчика из атрибута <see cref="DescriptionAttribute"/>.
|
||||
/// </summary>
|
||||
/// <param name="group">Перечисление группы обработчика.</param>
|
||||
/// <returns>Строка с описанием группы обработчика.</returns>
|
||||
public static string GetDescription(this ProcessorGroupEnum group)
|
||||
{
|
||||
return group
|
||||
.GetType()
|
||||
.GetField(group.ToString())
|
||||
?.GetCustomAttribute<DescriptionAttribute>()
|
||||
?.Description ?? group.ToString();
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,4 @@ namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
/// </summary>
|
||||
/// <param name="name">Название обработчика.</param>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class ProcessorAttribute(string name) : AbstractProcessorAttribute(name) { }
|
||||
public class ProcessorAttribute(string name) : AbstractProcessorAttribute(name) { }
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
@@ -7,7 +8,7 @@ namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
/// </summary>
|
||||
/// <param name="name">Название обработчика.</param>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
internal class ProcessorCollectionAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
public class ProcessorCollectionAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
{
|
||||
/// <summary>
|
||||
/// Название типов, который обрабатывает этот оброботчик.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Attributes;
|
||||
|
||||
internal class ProcessorFactoryAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
public class ProcessorFactoryAttribute(string name) : AbstractProcessorAttribute(name)
|
||||
{
|
||||
/// <summary>
|
||||
/// Тип обрабатывающего процессора
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Reflection;
|
||||
using LinqToDB;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Pf2e.Scrapper.Processors.Attributes;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
using Pf2e.Scrapper.Processors.Definitions;
|
||||
using Pf2e.Scrapper.Processors.Factory;
|
||||
|
||||
@@ -13,7 +14,7 @@ namespace Pf2e.Scrapper.Processors.Collection;
|
||||
/// <summary>
|
||||
/// Класс с коллекцией обработчиков.
|
||||
/// </summary>
|
||||
internal class ProcessorCollection
|
||||
public class ProcessorCollection
|
||||
{
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Pf2e.Scrapper.Processors.Attributes;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
using Pf2e.Scrapper.Processors.Factory;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Collection;
|
||||
@@ -8,7 +8,7 @@ namespace Pf2e.Scrapper.Processors.Collection;
|
||||
/// <summary>
|
||||
/// Элемент коллекции обработчиков.
|
||||
/// </summary>
|
||||
internal class ProcessorRecord
|
||||
public class ProcessorRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// Название обработчика.
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Pf2e.Scrapper.Processors.Definitions;
|
||||
/// </summary>
|
||||
/// <param name="input">Входные данные обработчика.</param>
|
||||
/// <seealso cref="ProcessorAttribute"/>
|
||||
internal abstract class AbstractInputProcessor(ProcessorInput input) : IProcessor
|
||||
public abstract class AbstractInputProcessor(ProcessorInput input) : IProcessor
|
||||
{
|
||||
/// <summary>
|
||||
/// Входные данные обработчика.
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Pf2e.Scrapper.Processors.Definitions;
|
||||
/// для которых указан атрибут <see cref="ProcessorAttribute"/>.
|
||||
/// </summary>
|
||||
/// <seealso cref="ProcessorAttribute"/>
|
||||
internal abstract class AbstractSimpleProcessor : IProcessor
|
||||
public abstract class AbstractSimpleProcessor : IProcessor
|
||||
{
|
||||
/// <summary>
|
||||
/// Основной метод обработки данных.
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Pf2e.Scrapper.Processors.Definitions;
|
||||
using Pf2e.Scrapper.Processors.Collection;
|
||||
using Pf2e.Scrapper.Processors.Definitions;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Factory;
|
||||
|
||||
/// <summary>
|
||||
/// Абстрактная фабрика создания процессоров.
|
||||
/// </summary>
|
||||
internal abstract class AbstractProcessorFactory
|
||||
public abstract class AbstractProcessorFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Подготовить фабрику к работе.
|
||||
|
||||
@@ -5,13 +5,13 @@ using Newtonsoft.Json.Linq;
|
||||
using Pf2e.Scrapper.Importers;
|
||||
using Pf2e.Scrapper.Importers.Implementations.Aonprd.Compendium;
|
||||
using Pf2e.Scrapper.Importers.Implementations.FoundryEn.Compendium;
|
||||
using Pf2e.Scrapper.Processors.Attributes;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
using Pf2e.Scrapper.Processors.Collection;
|
||||
using Pf2e.Scrapper.Processors.Definitions;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Factory;
|
||||
|
||||
internal class CompendiumProcessorFactory(ProcessorRecord item, IServiceProvider serviceProvider)
|
||||
public class CompendiumProcessorFactory(ProcessorRecord item, IServiceProvider serviceProvider)
|
||||
: AbstractProcessorFactory
|
||||
{
|
||||
public ProcessorRecord Item { get; } = item;
|
||||
|
||||
@@ -6,7 +6,7 @@ using Pf2e.Scrapper.Processors.Definitions;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.Factory;
|
||||
|
||||
internal class SimpleProcessorFactory(ProcessorRecord item, IServiceProvider serviceProvider)
|
||||
public class SimpleProcessorFactory(ProcessorRecord item, IServiceProvider serviceProvider)
|
||||
: AbstractProcessorFactory
|
||||
{
|
||||
public ProcessorRecord Item { get; } = item;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using Pf2e.Scrapper.Processors.Attributes;
|
||||
using Pf2e.Database;
|
||||
using Pf2e.Scrapper.Processors.Attributes;
|
||||
using Pf2e.Scrapper.Processors.Attributes.Enum;
|
||||
using Pf2e.Scrapper.Processors.Definitions;
|
||||
using Pf2e.Database;
|
||||
|
||||
namespace Pf2e.Scrapper.Processors.General;
|
||||
|
||||
[Processor("truncate", Description = "Отчистка таблиц БД", Group = ProcessorGroupEnum.General)]
|
||||
internal class DatabaseTruncateProcessor : IProcessor
|
||||
public class DatabaseTruncateProcessor : IProcessor
|
||||
{
|
||||
public void Process()
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Pf2e.Scrapper.Processors;
|
||||
/// <param name="collection">[DI] <inheritdoc cref="ProcessorCollection"/></param>
|
||||
/// <param name="progress">[DI] <inheritdoc cref="ProcessProgress"/></param>
|
||||
/// <param name="settings">[DI] <inheritdoc cref="ApplicationSettings"/></param>
|
||||
internal sealed class ProcessorExecutor(
|
||||
public sealed class ProcessorExecutor(
|
||||
ProcessorCollection collection,
|
||||
ProcessProgress progress,
|
||||
ApplicationSettings settings
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Pf2e.Scrapper.Processors;
|
||||
/// <param name="name">Название объекта, ассоциированного с вводом.</param>
|
||||
/// <param name="input">JSON-объект, который будет использоваться для доступа к данным.</param>
|
||||
/// <param name="enumSolvers">[DI] Набор интерфейсов, разрешающих значения перечислений.</param>
|
||||
internal class ProcessorInput(string name, JObject input, IEnumerable<IEnumSolver> enumSolvers)
|
||||
public class ProcessorInput(string name, JObject input, IEnumerable<IEnumSolver> enumSolvers)
|
||||
{
|
||||
/// <summary>
|
||||
/// Название объекта, ассоциированного с вводом.
|
||||
@@ -211,7 +211,7 @@ internal class ProcessorInput(string name, JObject input, IEnumerable<IEnumSolve
|
||||
/// <summary>
|
||||
/// Интерфейс для решения значений перечислений.
|
||||
/// </summary>
|
||||
internal interface IEnumSolver { }
|
||||
public interface IEnumSolver { }
|
||||
|
||||
/// <summary>
|
||||
/// Абстрактный класс для разрешения значений перечислений.
|
||||
|
||||
Reference in New Issue
Block a user