Added initial voice work search provider logic.

This commit is contained in:
2025-08-31 01:26:38 -04:00
parent 2785566801
commit 3d0b2ed31d
29 changed files with 656 additions and 58 deletions

View File

@@ -23,6 +23,8 @@ public abstract class SearchProvider<TItem, TCriteria, TSortField, TBaseQuery> :
.Take(options.PageSize)
.ToArrayAsync(cancellationToken);
await PostLoadAsync(items, cancellationToken);
return new SearchResult<TItem>()
{
Items = items,
@@ -82,8 +84,7 @@ public abstract class SearchProvider<TItem, TCriteria, TSortField, TBaseQuery> :
}
protected abstract Expression<Func<TBaseQuery, object>> GetSortExpression(TSortField field);
protected abstract IOrderedQueryable<TBaseQuery> GetDefaultSortExpression(IQueryable<TBaseQuery> query);
//protected abstract (Expression<Func<TBaseQuery, object>> Selector, SortDirection Direction) GetDefaultSortExpression();
protected abstract IEnumerable<(Expression<Func<TBaseQuery, object>> Selector, SortDirection Dir)> GetDefaultSortChain();
protected abstract IQueryable<TItem> GetSelectQuery(IOrderedQueryable<TBaseQuery> query);
protected virtual Task PostLoadAsync(IList<TItem> items, CancellationToken cancellationToken) => Task.CompletedTask;
}