2025-05-12 06:55:09 +03:00
|
|
|
|
/*
|
|
|
|
|
* Author: Nikolay Dvurechensky
|
|
|
|
|
* Site: https://www.dvurechensky.pro/
|
|
|
|
|
* Gmail: dvurechenskysoft@gmail.com
|
|
|
|
|
* Last Updated: 12 мая 2025 06:51:53
|
|
|
|
|
* Version: 1.0.7
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
namespace FileSearch.Logic.Model.Engine
|
2024-10-05 10:06:04 +03:00
|
|
|
|
{
|
|
|
|
|
public interface ICriterion
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Имя критерия фильтра.
|
|
|
|
|
/// </summary>
|
|
|
|
|
string Name { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Значение, указывающее усилия, необходимые системе для сопоставления файла.
|
|
|
|
|
/// Чем выше число, тем позже проверяется критерий.
|
|
|
|
|
/// </summary>
|
|
|
|
|
CriterionWeight Weight { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Указывает, поддерживает ли этот экземпляр критерия каталоги.
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool DirectorySupport { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Указывает, поддерживает ли этот экземпляр критерия файлы.
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool FileSupport { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Проверяет, соответствует ли файл или каталог этому критерию.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="fileSystemInfo">Entry файловой системы.</param>
|
|
|
|
|
/// <param name="context">Контекст текущей работы всех критериев.</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
bool IsMatch(FileSystemInfo fileSystemInfo, ICriterionContext context);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Создает новый контекст для этого критерия.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Новый контекст для сопоставления файлов.</returns>
|
|
|
|
|
ICriterionContext BuildContext();
|
|
|
|
|
}
|
|
|
|
|
}
|