Files
Pf2eDataScrapper/Pf2eDataScrapper/Importers/Implementations/Pf2eFoundry/Pf2eFoundryImporter.cs
T

68 lines
1.8 KiB
C#

using Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.DataBuilder;
using Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry.SchemaBuilder;
using Pf2eDataScrapper.Importers.Repositories;
namespace Pf2eDataScrapper.Importers.Implementations.Pf2eFoundry;
/// <summary>
/// Импортёр для модуля Pf2e FoundryVTT.
/// </summary>
internal class Pf2EFoundryImporter : AbstractImporter
{
/// <summary>
/// Отображаемое имя импортёра.
/// </summary>
public override string Name => "Pf2e FoundryVTT module";
/// <summary>
/// Короткое имя импортёра.
/// </summary>
public override string Slug => "pf2e";
public override AbstractImporterRepository Repository =>
new GitRepository(this, "https://github.com/foundryvtt/pf2e.git");
/// <summary>
/// Загрузчик данных компендиума.
/// </summary>
public CompendiumLoader Loader { get; }
/// <summary>
/// Конструктор импортёра.
/// </summary>
public Pf2EFoundryImporter()
{
Loader = new CompendiumLoader(this);
}
/// <summary>
/// Метод подготовки данных для импорта.
/// </summary>
public override void Prepare()
{
Loader.Prepare();
}
/// <summary>
/// Импорт данных.
/// </summary>
public override void Import()
{
PF2eFoundryDataBuilder builder = new(Loader);
builder.TruncateTables();
builder.Build();
}
/// <summary>
/// Построение схем данных
/// </summary>
public override void BuildSchemas()
{
CompendiumSchemaBuilder builder = new(Loader);
builder.BuildSchemas();
builder.Save(EnvSettings.OutputDir);
}
}