From ba1d3fd3e6bc621c81614eab07dbc036d7c8e8d5 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 22 Nov 2012 13:23:20 -0100 Subject: [PATCH] Fix Library.Search not giving back an list of DynamicNodes any more, breaking accessibility to custom properties --- .../RazorDynamicNode/RazorLibraryCore.cs | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/umbraco.MacroEngines/RazorDynamicNode/RazorLibraryCore.cs b/src/umbraco.MacroEngines/RazorDynamicNode/RazorLibraryCore.cs index c583894aa9..5921ff220a 100644 --- a/src/umbraco.MacroEngines/RazorDynamicNode/RazorLibraryCore.cs +++ b/src/umbraco.MacroEngines/RazorDynamicNode/RazorLibraryCore.cs @@ -145,18 +145,36 @@ namespace umbraco.MacroEngines.Library public dynamic Search(string term, bool useWildCards = true, string searchProvider = null) { - //wraps the functionality in UmbracoHelper but still returns the legacy DynamicNodeList - var nodes = ((DynamicPublishedContentList)_umbracoHelper.Search(term, useWildCards, searchProvider)) - .Select(x => x.ConvertToNode()); - return new DynamicNodeList(nodes); + var searcher = Examine.ExamineManager.Instance.DefaultSearchProvider; + if (!string.IsNullOrEmpty(searchProvider)) + searcher = Examine.ExamineManager.Instance.SearchProviderCollection[searchProvider]; + + var results = searcher.Search(term, useWildCards); + return ExamineSearchUtill.ConvertSearchResultToDynamicNode(results); + + //TODO: Does NOT return legacy DynamicNodeList, old code is back in place + + ////wraps the functionality in UmbracoHelper but still returns the legacy DynamicNodeList + //var nodes = ((DynamicPublishedContentList)_umbracoHelper.Search(term, useWildCards, searchProvider)) + // .Select(x => x.ConvertToNode()); + //return new DynamicNodeList(nodes); } public dynamic Search(Examine.SearchCriteria.ISearchCriteria criteria, Examine.Providers.BaseSearchProvider searchProvider = null) { - //wraps the functionality in UmbracoHelper but still returns the legacy DynamicNodeList - var nodes = ((DynamicPublishedContentList) _umbracoHelper.Search(criteria, searchProvider)) - .Select(x => x.ConvertToNode()); - return new DynamicNodeList(nodes); + var s = Examine.ExamineManager.Instance.DefaultSearchProvider; + if (searchProvider != null) + s = searchProvider; + + var results = s.Search(criteria); + return ExamineSearchUtill.ConvertSearchResultToDynamicNode(results); + + //TODO: Does NOT return legacy DynamicNodeList, old code is back in place + + ////wraps the functionality in UmbracoHelper but still returns the legacy DynamicNodeList + //var nodes = ((DynamicPublishedContentList) _umbracoHelper.Search(criteria, searchProvider)) + // .Select(x => x.ConvertToNode()); + //return new DynamicNodeList(nodes); }