Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@ public interface ISearchResultsModel
/// <param name="skip">The skip.</param>
/// <param name="language">The language of the displayed results.</param>
/// <param name="orderBy">The order by.</param>
void PopulateResults(string searchQuery, string indexCatalogue, int? skip, string language, string orderBy);
/// <param name="customFilter">A custom filter to add in addition to the generated filter that is already being made for text and language</param>
void PopulateResults(string searchQuery, string indexCatalogue, int? skip, string language, string orderBy, ISearchFilter customFilter = null);

/// <summary>
/// Validates the query.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public string[] HighlightedFields

#region Public methods
/// <inheritdoc />
public virtual void PopulateResults(string searchQuery, string indexCatalogue, int? skip, string language, string orderBy)
public virtual void PopulateResults(string searchQuery, string indexCatalogue, int? skip, string language, string orderBy, ISearchFilter customFilter = null)
{
this.IndexCatalogue = indexCatalogue;
this.InitializeOrderByEnum(orderBy);
Expand All @@ -161,7 +161,7 @@ public virtual void PopulateResults(string searchQuery, string indexCatalogue, i
}

int totalCount = 0;
var result = this.Search(searchQuery, language, itemsToSkip, take.Value, out totalCount);
var result = this.Search(searchQuery, language, itemsToSkip, take.Value, out totalCount, customFilter);

int? totalPagesCount = (int)Math.Ceiling((double)(totalCount / (double)this.ItemsPerPage.Value));
this.TotalPagesCount = this.DisplayMode == ListDisplayMode.Paging ? totalPagesCount : null;
Expand Down Expand Up @@ -206,8 +206,9 @@ public virtual bool ValidateQuery(ref string searchQuery)
/// <param name="skip">The skip.</param>
/// <param name="take">The take.</param>
/// <param name="hitCount">The hit count.</param>
/// <param name="customFilter">Any additional filtering on top of the generated filter for language </param>
/// <returns></returns>
public IEnumerable<IDocument> Search(string query, string language, int skip, int take, out int hitCount)
public IEnumerable<IDocument> Search(string query, string language, int skip, int take, out int hitCount, ISearchFilter customFilter)
{
var service = Telerik.Sitefinity.Services.ServiceBus.ResolveService<ISearchService>();
var queryBuilder = ObjectFactory.Resolve<IQueryBuilder>();
Expand All @@ -227,6 +228,19 @@ public IEnumerable<IDocument> Search(string query, string language, int skip, in
{
searchQuery.Filter = filter;
}

if (customFilter != null && (customFilter.Clauses.Any() || customFilter.Groups.Any()))
{
if (searchQuery.Filter != null)
{
(searchQuery.Filter as SearchFilter).AddFilter(customFilter);
}
else
{
searchQuery.Filter = customFilter;
}

}

var oldSkipValue = skip;
var permissionFilter = config.EnableFilterByViewPermissions;
Expand Down Expand Up @@ -415,4 +429,4 @@ private void InitializeOrderByEnum(string orderBy)

#endregion
}
}
}