예제 #1
0
        private void addTermMatches(
            List <TextRange> matches,
            List <TextRange> contextMatches,
            string displayField,
            string displayText,
            ISearchResultBase searchResult)
        {
            var highlightTerms = searchResult?.HighlightTerms;

            if (highlightTerms == null)
            {
                return;
            }

            foreach (var pair in highlightTerms.Where(term => isRelevantField(displayField, term.Key)))
            {
                var terms              = pair.Value;
                var patternsSet        = new Dictionary <string, (HashSet <string> TokenFields, Regex Pattern)>();
                var contextPatternsSet = new Dictionary <string, (HashSet <string> TokenFields, Regex Pattern)>();

                addTextualPatterns(searchResult.Query, terms, patternsSet, contextPatternsSet);
                _keywordHighlighter.AddKeywordPatterns(searchResult.Query, terms, patternsSet);

                addMatches(displayText, patternsSet.Values, matches);
                addMatches(displayText, contextPatternsSet.Values, contextMatches);
            }
        }
예제 #2
0
 public CatalogsResultViewModel(ISearchResultBase result, ISearchRequest request)
     : this()
 {
     _request = request as CatalogSearchRequest;
     CatalogSearchResult catalogsResult = result as CatalogSearchResult;
     _catalogs = catalogsResult.Catalogs;
 }
예제 #3
0
 public PageableCatalogResultViewModel(ISearchResultBase result, ISearchRequest request)
 {
     _request = request as CatalogSearchRequest;
     CatalogSearchResult catalogsResult = result as CatalogSearchResult;
     _catalogs = new PageableCollection<Catalog>(catalogsResult.Catalogs);
 }