47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using Pf2eModel;
|
|
using Slugify;
|
|
|
|
namespace Pf2eDataScrapper.Helpers;
|
|
|
|
/// <summary>
|
|
/// Класс предоставляет методы для работы с базой данных.
|
|
/// </summary>
|
|
public class DatabaseHelper
|
|
{
|
|
/// <summary>
|
|
/// Context для доступа к базе данных.
|
|
/// </summary>
|
|
public Pf2eDbContext Context { get; }
|
|
|
|
/// <summary>
|
|
/// Сервис для работы с URL-Slug. Используется для преобразования названий в URL-friendly формат.
|
|
/// </summary>
|
|
public SlugHelper Slugger { get; }
|
|
|
|
/// <summary>
|
|
/// Последний найденный идентификатор сущности.
|
|
/// Используется для генерации новых ID сущностей.
|
|
/// </summary>
|
|
private int _id;
|
|
|
|
/// <summary>
|
|
/// Генерирует новый уникальный идентификатор сущности. и возвращает его.
|
|
/// </summary>
|
|
public int NextEntityId => ++_id;
|
|
|
|
private DatabaseHelper(Pf2eDbContext context, SlugHelper slugHelper)
|
|
{
|
|
Context = context;
|
|
Slugger = slugHelper;
|
|
_id = Context.Entities.Any() ? Context.Entities.Max(e => e.Id) : 0;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Генерирует slug из названия.
|
|
/// </summary>
|
|
public string GenerateSlug(string name)
|
|
{
|
|
return Slugger.GenerateSlug(name);
|
|
}
|
|
}
|