| | 1 | | using Fluorite.Strainer.Models.Filtering; |
| | 2 | | using Fluorite.Strainer.Models.Filtering.Operators; |
| | 3 | | using Fluorite.Strainer.Models.Metadata; |
| | 4 | | using Fluorite.Strainer.Models.Sorting; |
| | 5 | |
|
| | 6 | | namespace Fluorite.Strainer.Services.Modules; |
| | 7 | |
|
| | 8 | | /// <summary> |
| | 9 | | /// Provides configuration information about metadata, filter operators |
| | 10 | | /// and custom methods for Strainer. |
| | 11 | | /// </summary> |
| | 12 | | public abstract class StrainerModule : IStrainerModule |
| | 13 | | { |
| | 14 | | /// <summary> |
| | 15 | | /// Initializes a new instance of the <see cref="StrainerModule"/> class. |
| | 16 | | /// </summary> |
| 6 | 17 | | protected StrainerModule() |
| | 18 | | { |
| 6 | 19 | | CustomFilterMethods = new Dictionary<Type, IDictionary<string, ICustomFilterMethod>>(); |
| 6 | 20 | | CustomSortMethods = new Dictionary<Type, IDictionary<string, ICustomSortMethod>>(); |
| 6 | 21 | | DefaultMetadata = new Dictionary<Type, IPropertyMetadata>(); |
| 6 | 22 | | FilterOperators = new Dictionary<string, IFilterOperator>(); |
| 6 | 23 | | ExcludedBuiltInFilterOperators = new HashSet<string>(); |
| 6 | 24 | | ObjectMetadata = new Dictionary<Type, IObjectMetadata>(); |
| 6 | 25 | | PropertyMetadata = new Dictionary<Type, IDictionary<string, IPropertyMetadata>>(); |
| 6 | 26 | | } |
| | 27 | |
|
| | 28 | | /// <inheritdoc/> |
| 5 | 29 | | public IDictionary<Type, IDictionary<string, ICustomFilterMethod>> CustomFilterMethods { get; } |
| | 30 | |
|
| | 31 | | /// <inheritdoc/> |
| 5 | 32 | | public IDictionary<Type, IDictionary<string, ICustomSortMethod>> CustomSortMethods { get; } |
| | 33 | |
|
| | 34 | | /// <inheritdoc/> |
| 5 | 35 | | public IDictionary<Type, IPropertyMetadata> DefaultMetadata { get; } |
| | 36 | |
|
| | 37 | | /// <inheritdoc/> |
| 5 | 38 | | public IDictionary<string, IFilterOperator> FilterOperators { get; } |
| | 39 | |
|
| | 40 | | /// <inheritdoc/> |
| 5 | 41 | | public ISet<string> ExcludedBuiltInFilterOperators { get; } |
| | 42 | |
|
| | 43 | | /// <inheritdoc/> |
| 10 | 44 | | public IDictionary<Type, IObjectMetadata> ObjectMetadata { get; } |
| | 45 | |
|
| | 46 | | /// <inheritdoc/> |
| 5 | 47 | | public IDictionary<Type, IDictionary<string, IPropertyMetadata>> PropertyMetadata { get; } |
| | 48 | |
|
| | 49 | | /// <inheritdoc/> |
| | 50 | | public abstract void Load(IStrainerModuleBuilder builder); |
| | 51 | | } |