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