FileSearchWindows/FileSearch/Logic/Model/Engine/EngineOptions.cs
Dvurechensky e2bffc8b49 1.0
Main
2024-10-05 10:06:04 +03:00

79 lines
2.0 KiB
C#

using FileSearch.Logic.Model.EncodingDetection;
using FileSearch.Logic.Model.Entities;
namespace FileSearch.Logic.Model.Engine
{
internal class EngineOptions
{
public EngineOptions(DirectoryInfo[] rootDirectories)
{
if (rootDirectories == null) throw new ArgumentNullException("rootDirectories");
if (rootDirectories.Length <= 0) throw new ArgumentException(@"Должен быть указан минимум 1 корневой каталог.", "rootDirectories");
RootDirectories = rootDirectories;
}
public DirectoryInfo[] RootDirectories { get; private set; }
#region Basic
public string SearchName { get; set; }
public bool SearchNameIgnoreCasing { get; set; }
public bool SearchNameMatchFullPath { get; set; }
public bool SearchNameAsRegularExpression { get; set; }
public bool SearchRecursive { get; set; }
public bool SearchIncludesFolders { get; set; }
public bool SearchInArchives { get; set; }
#endregion
#region Attributes
public FileAttributes AttributesIncluded { get; set; }
public FileAttributes AttributesExcluded { get; set; }
#endregion
#region Size
public long? MinimumSize { get; set; }
public long? MaximumSize { get; set; }
#endregion
#region Dates
public FileDateOption DateOption { get; set; }
public DateTime? StartDateTime { get; set; }
public DateTime? EndDateTime { get; set; }
#endregion
#region File content
public string ContentText { get; set; }
public IEncodingFactory ContentEncodingFactory { get; set; }
public bool ContentIgnoreCasing { get; set; }
public bool ContentWholeWordsOnly { get; set; }
public bool ContentAsRegularExpression { get; set; }
public bool ContentForOfficeXml { get; set; }
#endregion
}
}