Libation/Source/LibationSearchEngine/LibraryBookRule.cs
2023-06-12 14:02:55 -06:00

22 lines
610 B
C#

using DataLayer;
using System;
using System.Collections.ObjectModel;
namespace LibationSearchEngine;
public class LibraryBookRule : IIndexRule
{
public FieldType FieldType { get; }
public Func<LibraryBook, string> ValueGetter { get; }
public ReadOnlyCollection<string> FieldNames { get; }
public LibraryBookRule(FieldType fieldType, Func<LibraryBook, string> valueGetter, params string[] fieldNames)
{
ValueGetter = valueGetter;
FieldType = fieldType;
FieldNames = new ReadOnlyCollection<string>(fieldNames);
}
public string GetValue(LibraryBook libraryBook) => ValueGetter(libraryBook);
}