Глобальный рефакторинг пространств имён

This commit is contained in:
2025-10-02 13:29:30 +04:00
parent d23d81fb53
commit 2fa94851cb
3176 changed files with 27146 additions and 30584 deletions
+56
View File
@@ -0,0 +1,56 @@
using System.Linq;
using System.Threading;
using Pf2e.Database;
using Slugify;
namespace Pf2e.Scrapper.Helpers;
/// <summary>
/// Класс предоставляет методы для работы с базой данных.
/// </summary>
public class DatabaseHelper
{
/// <summary>
/// Context для доступа к базе данных.
/// </summary>
public Pf2eDbContext Context { get; } = new();
/// <summary>
/// Сервис для работы с URL-Slug. Используется для преобразования названий в URL-friendly формат.
/// </summary>
public SlugHelper Slugger { get; }
/// <summary>
/// Последний найденный идентификатор сущности.
/// Используется для генерации новых ID сущностей.
/// </summary>
private int _id;
/// <summary>
/// Генерирует новый уникальный идентификатор сущности. и возвращает его.
/// </summary>
public int NextEntityId => ++_id;
/// <summary>
/// Блокировщик для генерации идентификаторов сущностей.
/// </summary>
public Lock IdLock { get; } = new();
/// <summary>
/// Конструктор класса <see cref="DatabaseHelper"/>
/// </summary>
/// <param name="slugHelper">[DI] Сервис для работы с URL-Slug</param>
public DatabaseHelper(SlugHelper slugHelper)
{
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);
}
}