FileSearchWindows/FileSearch/Logic/Model/Engine/ICriterion.cs
Dvurechensky 2edf663d5b 1.0.5
2025-05-12 06:55:09 +03:00

49 lines
1.9 KiB
C#

/*
* 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
{
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();
}
}