diff --git a/zero.Core/Api/TranslationsApi.cs b/zero.Core/Api/TranslationsApi.cs
index 52a67ef6..6c0b820a 100644
--- a/zero.Core/Api/TranslationsApi.cs
+++ b/zero.Core/Api/TranslationsApi.cs
@@ -48,7 +48,7 @@ namespace zero.Core.Api
///
public async Task> GetByQuery(string languageId, ListQuery query)
{
- query.SearchSelector = entity => entity.Key;
+ query.SearchFor(entity => entity.Key, entity => entity.Value);
using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
{
diff --git a/zero.Core/Entities/ListQuery.cs b/zero.Core/Entities/ListQuery.cs
index 7a65cc04..cb566c48 100644
--- a/zero.Core/Entities/ListQuery.cs
+++ b/zero.Core/Entities/ListQuery.cs
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using System;
+using System.Collections.Generic;
using System.Linq.Expressions;
namespace zero.Core.Entities
@@ -15,6 +16,8 @@ namespace zero.Core.Entities
public Expression> SearchSelector { get; set; } = null;
+ public Expression>[] SearchSelectors { get; private set; } = new Expression>[0] { };
+
public string OrderBy { get; set; } = "createdDate";
public ListQueryOrderType OrderType { get; set; } = ListQueryOrderType.String;
@@ -26,6 +29,11 @@ namespace zero.Core.Entities
public int PageSize { get; set; } = 30;
public TFilter Filter { get; set; }
+
+ public void SearchFor(params Expression>[] selectors)
+ {
+ SearchSelectors = selectors;
+ }
}
diff --git a/zero.Core/Extensions/RavenQueryableExtensions.cs b/zero.Core/Extensions/RavenQueryableExtensions.cs
index e79af731..81392057 100644
--- a/zero.Core/Extensions/RavenQueryableExtensions.cs
+++ b/zero.Core/Extensions/RavenQueryableExtensions.cs
@@ -44,6 +44,13 @@ namespace zero.Core.Extensions
{
rawQuery = rawQuery.SearchIf(query.SearchSelector, query.Search, "*", "*");
}
+ if (!query.Search.IsNullOrEmpty() && query.SearchSelectors.Length > 0)
+ {
+ foreach (var selector in query.SearchSelectors)
+ {
+ rawQuery = rawQuery.SearchIf(selector, query.Search, "*", "*", Raven.Client.Documents.Queries.SearchOperator.Or);
+ }
+ }
if (!query.OrderBy.IsNullOrEmpty())
{