From a7f6985b38de65b7ab9dfc61d47bfc3e45b0dc3a Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 28 Nov 2018 14:46:45 +1100 Subject: [PATCH] Cleans up the BaseValueSetBuilder --- src/Umbraco.Examine/BaseValueSetBuilder.cs | 13 +++++++---- src/Umbraco.Examine/ContentValueSetBuilder.cs | 14 +++--------- src/Umbraco.Examine/IValueSetBuilder.cs | 11 +++++++++- src/Umbraco.Examine/MediaValueSetBuilder.cs | 5 +++-- src/Umbraco.Examine/MemberValueSetBuilder.cs | 5 +++-- src/Umbraco.Web/Search/ExamineComponent.cs | 22 ++++++------------- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/Umbraco.Examine/BaseValueSetBuilder.cs b/src/Umbraco.Examine/BaseValueSetBuilder.cs index 043e017754..d0c6069add 100644 --- a/src/Umbraco.Examine/BaseValueSetBuilder.cs +++ b/src/Umbraco.Examine/BaseValueSetBuilder.cs @@ -1,20 +1,27 @@ using System.Collections.Generic; using System.Linq; +using Examine; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; namespace Umbraco.Examine { - public abstract class BaseValueSetBuilder + + /// + public abstract class BaseValueSetBuilder : IValueSetBuilder + where TContent : IContentBase { private readonly PropertyEditorCollection _propertyEditors; - public BaseValueSetBuilder(PropertyEditorCollection propertyEditors) + protected BaseValueSetBuilder(PropertyEditorCollection propertyEditors) { _propertyEditors = propertyEditors ?? throw new System.ArgumentNullException(nameof(propertyEditors)); } + /// + public abstract IEnumerable GetValueSets(params TContent[] content); + protected void AddPropertyValue(Property property, string culture, string segment, IDictionary values) { var editor = _propertyEditors[property.PropertyType.PropertyEditorAlias]; @@ -57,8 +64,6 @@ namespace Umbraco.Examine } } } - - } } diff --git a/src/Umbraco.Examine/ContentValueSetBuilder.cs b/src/Umbraco.Examine/ContentValueSetBuilder.cs index ec52bbbd4f..258f24c21e 100644 --- a/src/Umbraco.Examine/ContentValueSetBuilder.cs +++ b/src/Umbraco.Examine/ContentValueSetBuilder.cs @@ -8,9 +8,8 @@ using Umbraco.Core.Strings; namespace Umbraco.Examine { - public class ContentValueSetBuilder : BaseValueSetBuilder, IValueSetBuilder + public class ContentValueSetBuilder : BaseValueSetBuilder { - private readonly PropertyEditorCollection _propertyEditors; private readonly IEnumerable _urlSegmentProviders; private readonly IUserService _userService; @@ -19,19 +18,12 @@ namespace Umbraco.Examine IUserService userService) : base(propertyEditors) { - _propertyEditors = propertyEditors; _urlSegmentProviders = urlSegmentProviders; _userService = userService; } - /// - /// Creates a collection of for a collection - /// - /// - /// - /// - /// Yield returns - public IEnumerable GetValueSets(params IContent[] content) + /// + public override IEnumerable GetValueSets(params IContent[] content) { //TODO: There is a lot of boxing going on here and ultimately all values will be boxed by Lucene anyways // but I wonder if there's a way to reduce the boxing that we have to do or if it will matter in the end since diff --git a/src/Umbraco.Examine/IValueSetBuilder.cs b/src/Umbraco.Examine/IValueSetBuilder.cs index 6b1a372e09..89aa907926 100644 --- a/src/Umbraco.Examine/IValueSetBuilder.cs +++ b/src/Umbraco.Examine/IValueSetBuilder.cs @@ -4,9 +4,18 @@ using Umbraco.Core.Models; namespace Umbraco.Examine { - public interface IValueSetBuilder + /// + /// Creates a collection of to be indexed based on a collection of + /// + /// + public interface IValueSetBuilder where TContent : IContentBase { + /// + /// Creates a collection of to be indexed based on a collection of + /// + /// + /// IEnumerable GetValueSets(params TContent[] content); } diff --git a/src/Umbraco.Examine/MediaValueSetBuilder.cs b/src/Umbraco.Examine/MediaValueSetBuilder.cs index 6758d29f53..f162c07f59 100644 --- a/src/Umbraco.Examine/MediaValueSetBuilder.cs +++ b/src/Umbraco.Examine/MediaValueSetBuilder.cs @@ -8,7 +8,7 @@ using Umbraco.Core.Strings; namespace Umbraco.Examine { - public class MediaValueSetBuilder : BaseValueSetBuilder, IValueSetBuilder + public class MediaValueSetBuilder : BaseValueSetBuilder { private readonly IEnumerable _urlSegmentProviders; private readonly IUserService _userService; @@ -22,7 +22,8 @@ namespace Umbraco.Examine _userService = userService; } - public IEnumerable GetValueSets(params IMedia[] media) + /// + public override IEnumerable GetValueSets(params IMedia[] media) { foreach (var m in media) { diff --git a/src/Umbraco.Examine/MemberValueSetBuilder.cs b/src/Umbraco.Examine/MemberValueSetBuilder.cs index 50f4ee6992..fb6cb6f967 100644 --- a/src/Umbraco.Examine/MemberValueSetBuilder.cs +++ b/src/Umbraco.Examine/MemberValueSetBuilder.cs @@ -7,14 +7,15 @@ using Umbraco.Core.PropertyEditors; namespace Umbraco.Examine { - public class MemberValueSetBuilder : BaseValueSetBuilder, IValueSetBuilder + public class MemberValueSetBuilder : BaseValueSetBuilder { public MemberValueSetBuilder(PropertyEditorCollection propertyEditors) : base(propertyEditors) { } - public IEnumerable GetValueSets(params IMember[] members) + /// + public override IEnumerable GetValueSets(params IMember[] members) { foreach (var m in members) { diff --git a/src/Umbraco.Web/Search/ExamineComponent.cs b/src/Umbraco.Web/Search/ExamineComponent.cs index 2b2a1f1938..752440a4dc 100644 --- a/src/Umbraco.Web/Search/ExamineComponent.cs +++ b/src/Umbraco.Web/Search/ExamineComponent.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -17,17 +16,13 @@ using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; using Umbraco.Core.Services; using Umbraco.Core.Services.Changes; -using Umbraco.Core.Strings; using Umbraco.Core.Sync; using Umbraco.Web.Cache; -using Umbraco.Web.PropertyEditors; using Umbraco.Examine; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Web.Scheduling; using System.Threading.Tasks; -using Umbraco.Core.Persistence; using Umbraco.Core.Composing; -using LightInject; namespace Umbraco.Web.Search { @@ -42,15 +37,13 @@ namespace Umbraco.Web.Search private IValueSetBuilder _contentValueSetBuilder; private IValueSetBuilder _mediaValueSetBuilder; private IValueSetBuilder _memberValueSetBuilder; - private ContentIndexPopulator _contentIndexPopulator; - private MediaIndexPopulator _mediaIndexPopulator; private static bool _disableExamineIndexing = false; private static volatile bool _isConfigured = false; private static readonly object IsConfiguredLocker = new object(); private IScopeProvider _scopeProvider; private ServiceContext _services; private static BackgroundTaskRunner _rebuildOnStartupRunner; - private static readonly object _rebuildLocker = new object(); + private static readonly object RebuildLocker = new object(); // the default enlist priority is 100 // enlist with a lower priority to ensure that anything "default" runs after us @@ -77,15 +70,11 @@ namespace Umbraco.Web.Search IndexRebuilder indexRebuilder, ServiceContext services, IValueSetBuilder contentValueSetBuilder, IValueSetBuilder mediaValueSetBuilder, - IValueSetBuilder memberValueSetBuilder, - ContentIndexPopulator contentIndexPopulator, PublishedContentIndexPopulator publishedContentIndexPopulator, - MediaIndexPopulator mediaIndexPopulator) + IValueSetBuilder memberValueSetBuilder) { _services = services; _scopeProvider = scopeProvider; _examineManager = examineManager; - _contentIndexPopulator = contentIndexPopulator; - _mediaIndexPopulator = mediaIndexPopulator; _contentValueSetBuilder = contentValueSetBuilder; _mediaValueSetBuilder = mediaValueSetBuilder; _memberValueSetBuilder = memberValueSetBuilder; @@ -149,17 +138,20 @@ namespace Umbraco.Web.Search RebuildIndexes(indexRebuilder, profilingLogger.Logger, true, 5000); } - + /// /// Called to rebuild empty indexes on startup /// + /// /// + /// + /// public static void RebuildIndexes(IndexRebuilder indexRebuilder, ILogger logger, bool onlyEmptyIndexes, int waitMilliseconds = 0) { //TODO: need a way to disable rebuilding on startup - lock(_rebuildLocker) + lock(RebuildLocker) { if (_rebuildOnStartupRunner != null && _rebuildOnStartupRunner.IsRunning) {