Files

39 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using Pf2e.Scrapper.Importers.Repositories;
namespace Pf2e.Scrapper.Importers;
/// <summary>
/// Компендиум данных.
/// </summary>
public abstract class AbstractCompendium
{
/// <summary>
/// Репозиторий данных.
/// </summary>
public abstract AbstractImporterRepository Repository { get; }
/// <summary>
/// Путь к хранению исходных данных.
/// </summary>
public string Dir => Repository.RepositoryDirPath;
/// <summary>
/// Возвращает количество элементов для указанного типа данных.
/// </summary>
/// <param name="type">Типы данных.</param>
/// <returns>Количество элементов.</returns>
public abstract int Count(params ICollection<string> type);
/// <summary>
/// Получение итератора сущностей. Если указан тип <paramref name="type"/> - то только указанного типа.
/// </summary>
/// <param name="type">Типы сущностей, которые нужно получить.</param>
/// <returns>Итератор сущностей.</returns>
public abstract IEnumerable<Tuple<AbstractCompendiumItem, JObject>> Iterate(
params ICollection<string> type
);
}