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; }