Files
Lattice/Lattice.Core.DragDrop/Extensions/ServiceCollectionExtensions.cs
2026-01-18 16:33:35 +03:00

85 lines
3.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace Lattice.Core.DragDrop.Extensions;
/// <summary>
/// Методы расширения для регистрации сервисов перетаскивания.
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// Добавляет сервис перетаскивания.
/// </summary>
/// <param name="serviceCollection">Коллекция сервисов.</param>
/// <returns>Коллекция сервисов.</returns>
/// <remarks>
/// Реализация DI должна быть предоставлена конкретным приложением.
/// </remarks>
public static object AddDragDropService(this object serviceCollection)
{
// Реализация регистрации сервиса должна быть в конкретном приложении
// Это абстрактный метод для поддержки DI без зависимостей
return serviceCollection;
}
/// <summary>
/// Добавляет сервис перетаскивания с конфигурацией.
/// </summary>
/// <param name="serviceCollection">Коллекция сервисов.</param>
/// <param name="configure">Действие конфигурации.</param>
/// <returns>Коллекция сервисов.</returns>
public static object AddDragDropService(
this object serviceCollection,
Action<DragDropServiceOptions> configure)
{
var options = new DragDropServiceOptions();
configure(options);
// Реализация регистрации с опциями должна быть в конкретном приложении
return serviceCollection;
}
}
/// <summary>
/// Опции конфигурации сервиса перетаскивания.
/// </summary>
public class DragDropServiceOptions
{
/// <summary>
/// Порог начала перетаскивания в пикселях.
/// </summary>
public double DragStartThreshold { get; set; } = 3.0;
/// <summary>
/// Включить ведение журнала операций.
/// </summary>
public bool EnableLogging { get; set; } = false;
/// <summary>
/// Включить автоматическую очистку неиспользуемых целей.
/// </summary>
public bool EnableAutoCleanup { get; set; } = true;
/// <summary>
/// Интервал автоматической очистки в миллисекундах.
/// </summary>
public int AutoCleanupInterval { get; set; } = 60000;
/// <summary>
/// Включить асинхронную обработку операций.
/// </summary>
public bool EnableAsyncOperations { get; set; } = true;
/// <summary>
/// Время ожидания асинхронных операций в миллисекундах.
/// </summary>
public int AsyncOperationTimeout { get; set; } = 5000;
/// <summary>
/// Включить сбор статистики.
/// </summary>
public bool EnableStatistics { get; set; } = true;
/// <summary>
/// Включить проверку типов данных.
/// </summary>
public bool EnableTypeChecking { get; set; } = true;
}