namespace Lattice.Core.DragDrop.Extensions;
///
/// Методы расширения для регистрации сервисов перетаскивания.
///
public static class ServiceCollectionExtensions
{
///
/// Добавляет сервис перетаскивания.
///
/// Коллекция сервисов.
/// Коллекция сервисов.
///
/// Реализация DI должна быть предоставлена конкретным приложением.
///
public static object AddDragDropService(this object serviceCollection)
{
// Реализация регистрации сервиса должна быть в конкретном приложении
// Это абстрактный метод для поддержки DI без зависимостей
return serviceCollection;
}
///
/// Добавляет сервис перетаскивания с конфигурацией.
///
/// Коллекция сервисов.
/// Действие конфигурации.
/// Коллекция сервисов.
public static object AddDragDropService(
this object serviceCollection,
Action configure)
{
var options = new DragDropServiceOptions();
configure(options);
// Реализация регистрации с опциями должна быть в конкретном приложении
return serviceCollection;
}
}
///
/// Опции конфигурации сервиса перетаскивания.
///
public class DragDropServiceOptions
{
///
/// Порог начала перетаскивания в пикселях.
///
public double DragStartThreshold { get; set; } = 3.0;
///
/// Включить ведение журнала операций.
///
public bool EnableLogging { get; set; } = false;
///
/// Включить автоматическую очистку неиспользуемых целей.
///
public bool EnableAutoCleanup { get; set; } = true;
///
/// Интервал автоматической очистки в миллисекундах.
///
public int AutoCleanupInterval { get; set; } = 60000;
///
/// Включить асинхронную обработку операций.
///
public bool EnableAsyncOperations { get; set; } = true;
///
/// Время ожидания асинхронных операций в миллисекундах.
///
public int AsyncOperationTimeout { get; set; } = 5000;
///
/// Включить сбор статистики.
///
public bool EnableStatistics { get; set; } = true;
///
/// Включить проверку типов данных.
///
public bool EnableTypeChecking { get; set; } = true;
}