diff --git a/src/Umbraco.Web/Editors/EntityController.cs b/src/Umbraco.Web/Editors/EntityController.cs index 64082a1037..ff6c9b7aec 100644 --- a/src/Umbraco.Web/Editors/EntityController.cs +++ b/src/Umbraco.Web/Editors/EntityController.cs @@ -120,21 +120,21 @@ namespace Umbraco.Web.Editors foreach (var searchableTree in searchableTrees) { - if (allowedSections.Contains(searchableTree.AppAlias)) + if (allowedSections.Contains(searchableTree.Value.AppAlias)) { - var tree = Services.ApplicationTreeService.GetByAlias(searchableTree.TreeAlias); + var tree = Services.ApplicationTreeService.GetByAlias(searchableTree.Key); if (tree == null) continue; //shouldn't occur - var searchableTreeAttribute = searchableTree.SearchableTree.GetType().GetCustomAttribute(false); + var searchableTreeAttribute = searchableTree.Value.SearchableTree.GetType().GetCustomAttribute(false); var treeAttribute = tree.GetTreeAttribute(); long total; result[treeAttribute.GetRootNodeDisplayName(Services.TextService)] = new TreeSearchResult { - Results = searchableTree.SearchableTree.Search(query, 200, 0, out total), - TreeAlias = searchableTree.TreeAlias, - AppAlias = searchableTree.AppAlias, + Results = searchableTree.Value.SearchableTree.Search(query, 200, 0, out total), + TreeAlias = searchableTree.Key, + AppAlias = searchableTree.Value.AppAlias, JsFormatterService = searchableTreeAttribute == null ? "" : searchableTreeAttribute.ServiceName, JsFormatterMethod = searchableTreeAttribute == null ? "" : searchableTreeAttribute.MethodName }; diff --git a/src/Umbraco.Web/Models/ContentEditing/SearchResultItem.cs b/src/Umbraco.Web/Models/ContentEditing/SearchResultItem.cs index ccbc281706..495c5d0c30 100644 --- a/src/Umbraco.Web/Models/ContentEditing/SearchResultItem.cs +++ b/src/Umbraco.Web/Models/ContentEditing/SearchResultItem.cs @@ -10,13 +10,6 @@ namespace Umbraco.Web.Models.ContentEditing /// [DataMember(Name = "score")] public float Score { get; set; } - - //TODO: Enable this! - ///// - ///// A caption for the search result - ///// - //[DataMember(Name = "caption")] - //public string Caption { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Web/Search/SearchableTreeCollection.cs b/src/Umbraco.Web/Search/SearchableTreeCollection.cs index c9a64d882f..463ae54f1d 100644 --- a/src/Umbraco.Web/Search/SearchableTreeCollection.cs +++ b/src/Umbraco.Web/Search/SearchableTreeCollection.cs @@ -1,12 +1,18 @@ -using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.Collections.ObjectModel; namespace Umbraco.Web.Search { - public class SearchableTreeCollection : KeyedCollection + internal class SearchableTreeCollection : KeyedCollection { protected override string GetKeyForItem(SearchableApplicationTree item) { return item.TreeAlias; } + + public IReadOnlyDictionary AsReadOnlyDictionary() + { + return new ReadOnlyDictionary(Dictionary); + } } } \ No newline at end of file diff --git a/src/Umbraco.Web/Search/SearchableTreeResolver.cs b/src/Umbraco.Web/Search/SearchableTreeResolver.cs index 4a43bb82f1..6c61421400 100644 --- a/src/Umbraco.Web/Search/SearchableTreeResolver.cs +++ b/src/Umbraco.Web/Search/SearchableTreeResolver.cs @@ -23,13 +23,13 @@ namespace Umbraco.Web.Search _treeService = treeService; } - private SearchableTreeCollection _resolved; + private IReadOnlyDictionary _resolved; private static readonly object Locker = new object(); /// /// Returns the a dictionary of tree alias with it's affiliated /// - public SearchableTreeCollection SearchableTrees + public IReadOnlyDictionary SearchableTrees { get { @@ -38,16 +38,17 @@ namespace Umbraco.Web.Search lock (Locker) { var appTrees = _treeService.GetAll().ToArray(); - _resolved = new SearchableTreeCollection(); + var collection = new SearchableTreeCollection(); var searchableTrees = Values.ToArray(); foreach (var searchableTree in searchableTrees) { var found = appTrees.FirstOrDefault(x => x.Alias == searchableTree.TreeAlias); if (found != null) { - _resolved.Add(new SearchableApplicationTree(found.ApplicationAlias, found.Alias, searchableTree)); + collection.Add(new SearchableApplicationTree(found.ApplicationAlias, found.Alias, searchableTree)); } } + _resolved = collection.AsReadOnlyDictionary(); return _resolved; } }