diff --git a/src/Orchard.Tests/ContentManagement/ContentPartDriverHandlerTests.cs b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs similarity index 90% rename from src/Orchard.Tests/ContentManagement/ContentPartDriverHandlerTests.cs rename to src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs index 75a6fd49f..165c4734a 100644 --- a/src/Orchard.Tests/ContentManagement/ContentPartDriverHandlerTests.cs +++ b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs @@ -5,21 +5,24 @@ using Moq; using NUnit.Framework; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; +using Orchard.ContentManagement.Drivers.Coordinators; using Orchard.ContentManagement.Handlers; using Orchard.Environment.AutofacUtil; using Orchard.Mvc.ViewModels; +using Orchard.Tests.Utility; using Orchard.UI.Zones; -namespace Orchard.Tests.ContentManagement { +namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { [TestFixture] - public class ContentPartDriverHandlerTests { + public class ContentPartDriverCoordinatorTests { private IContainer _container; [SetUp] public void Init() { var builder = new ContainerBuilder(); //builder.RegisterModule(new ImplicitCollectionSupportModule()); - builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterAutoMocking(); _container = builder.Build(); } diff --git a/src/Orchard.Tests/Orchard.Framework.Tests.csproj b/src/Orchard.Tests/Orchard.Framework.Tests.csproj index b6393e39a..145df3847 100644 --- a/src/Orchard.Tests/Orchard.Framework.Tests.csproj +++ b/src/Orchard.Tests/Orchard.Framework.Tests.csproj @@ -168,7 +168,7 @@ - + Code diff --git a/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs b/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs index a5bcbe492..6af1fdab8 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Services/SearchService.cs @@ -7,16 +7,14 @@ using Orchard.Localization; using Orchard.Localization.Services; using Orchard.ContentManagement; -namespace Orchard.Search.Services -{ - public class SearchService : ISearchService - { - private readonly IContentManager _contentManager; +namespace Orchard.Search.Services { + public class SearchService : ISearchService { + private readonly IIndexManager _indexManager; private readonly ICultureManager _cultureManager; - public SearchService(IOrchardServices services, IContentManager contentManager, ICultureManager cultureManager) { + public SearchService(IOrchardServices services, IIndexManager indexManager, ICultureManager cultureManager) { Services = services; - _contentManager = contentManager; + _indexManager = indexManager; _cultureManager = cultureManager; T = NullLocalizer.Instance; } @@ -24,14 +22,20 @@ namespace Orchard.Search.Services public IOrchardServices Services { get; set; } public Localizer T { get; set; } + ISearchBuilder Search() { + return _indexManager.HasIndexProvider() + ? _indexManager.GetSearchIndexProvider().CreateSearchBuilder("Search") + : new NullSearchBuilder(); + } + IPageOfItems ISearchService.Query(string query, int page, int? pageSize, bool filterCulture, string[] searchFields, Func shapeResult) { if (string.IsNullOrWhiteSpace(query)) return null; - var searchBuilder = _contentManager.Search().Parse(searchFields, query); + var searchBuilder = Search().Parse(searchFields, query); - if ( filterCulture ) { + if (filterCulture) { var culture = _cultureManager.GetSiteCulture(); // use LCID as the text representation gets analyzed by the query parser @@ -48,7 +52,7 @@ namespace Orchard.Search.Services var pageOfItems = new PageOfItems(searchBuilder.Search().Select(shapeResult)) { PageNumber = page, - PageSize = pageSize != null ? (int) pageSize : totalCount, + PageSize = pageSize != null ? (int)pageSize : totalCount, TotalItemCount = totalCount }; diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index fddc7a953..6457da247 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -18,7 +18,6 @@ namespace Orchard.ContentManagement { private readonly IRepository _contentItemVersionRepository; private readonly IContentDefinitionManager _contentDefinitionManager; private readonly Func _contentManagerSession; - private readonly IIndexManager _indexManager; public DefaultContentManager( IComponentContext context, @@ -26,15 +25,13 @@ namespace Orchard.ContentManagement { IRepository contentItemRepository, IRepository contentItemVersionRepository, IContentDefinitionManager contentDefinitionManager, - Func contentManagerSession, - IIndexManager indexManager) { + Func contentManagerSession) { _context = context; _contentTypeRepository = contentTypeRepository; _contentItemRepository = contentItemRepository; _contentItemVersionRepository = contentItemVersionRepository; _contentDefinitionManager = contentDefinitionManager; _contentManagerSession = contentManagerSession; - _indexManager = indexManager; } private IEnumerable _handlers; @@ -447,10 +444,10 @@ namespace Orchard.ContentManagement { } } - public ISearchBuilder Search() { - return _indexManager.HasIndexProvider() - ? _indexManager.GetSearchIndexProvider().CreateSearchBuilder("Search") - : new NullSearchBuilder(); - } + //public ISearchBuilder Search() { + // return _indexManager.HasIndexProvider() + // ? _indexManager.GetSearchIndexProvider().CreateSearchBuilder("Search") + // : new NullSearchBuilder(); + //} } } diff --git a/src/Orchard/ContentManagement/Drivers/ContentFieldDriverHandler.cs b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentFieldDriverCoordinator.cs similarity index 82% rename from src/Orchard/ContentManagement/Drivers/ContentFieldDriverHandler.cs rename to src/Orchard/ContentManagement/Drivers/Coordinators/ContentFieldDriverCoordinator.cs index db70c4f4d..4c6f37ab0 100644 --- a/src/Orchard/ContentManagement/Drivers/ContentFieldDriverHandler.cs +++ b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentFieldDriverCoordinator.cs @@ -3,12 +3,12 @@ using JetBrains.Annotations; using Orchard.ContentManagement.Handlers; using Orchard.Logging; -namespace Orchard.ContentManagement.Drivers { +namespace Orchard.ContentManagement.Drivers.Coordinators { [UsedImplicitly] - public class ContentFieldDriverHandler : ContentHandlerBase { + public class ContentFieldDriverCoordinator : ContentHandlerBase { private readonly IEnumerable _drivers; - public ContentFieldDriverHandler(IEnumerable drivers) { + public ContentFieldDriverCoordinator(IEnumerable drivers) { _drivers = drivers; Logger = NullLogger.Instance; } diff --git a/src/Orchard/ContentManagement/Drivers/ContentItemDriverHandler.cs b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentItemDriverCoordinator.cs similarity index 86% rename from src/Orchard/ContentManagement/Drivers/ContentItemDriverHandler.cs rename to src/Orchard/ContentManagement/Drivers/Coordinators/ContentItemDriverCoordinator.cs index f6d456c32..52fe45307 100644 --- a/src/Orchard/ContentManagement/Drivers/ContentItemDriverHandler.cs +++ b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentItemDriverCoordinator.cs @@ -3,12 +3,12 @@ using JetBrains.Annotations; using Orchard.ContentManagement.Handlers; using Orchard.Logging; -namespace Orchard.ContentManagement.Drivers { +namespace Orchard.ContentManagement.Drivers.Coordinators { [UsedImplicitly] - public class ContentItemDriverHandler : ContentHandlerBase { + public class ContentItemDriverCoordinator : ContentHandlerBase { private readonly IEnumerable _drivers; - public ContentItemDriverHandler(IEnumerable drivers) { + public ContentItemDriverCoordinator(IEnumerable drivers) { _drivers = drivers; Logger = NullLogger.Instance; } diff --git a/src/Orchard/ContentManagement/Drivers/ContentPartDriverHandler.cs b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentPartDriverCoordinator.cs similarity index 54% rename from src/Orchard/ContentManagement/Drivers/ContentPartDriverHandler.cs rename to src/Orchard/ContentManagement/Drivers/Coordinators/ContentPartDriverCoordinator.cs index 119ac4b48..465fccb41 100644 --- a/src/Orchard/ContentManagement/Drivers/ContentPartDriverHandler.cs +++ b/src/Orchard/ContentManagement/Drivers/Coordinators/ContentPartDriverCoordinator.cs @@ -1,19 +1,37 @@ using System.Collections.Generic; +using System.Linq; using JetBrains.Annotations; using Orchard.ContentManagement.Handlers; +using Orchard.ContentManagement.MetaData; using Orchard.Logging; -namespace Orchard.ContentManagement.Drivers { +namespace Orchard.ContentManagement.Drivers.Coordinators { [UsedImplicitly] - public class ContentPartDriverHandler : ContentHandlerBase { + public class ContentPartDriverCoordinator : ContentHandlerBase { private readonly IEnumerable _drivers; + private readonly IContentDefinitionManager _contentDefinitionManager; - public ContentPartDriverHandler(IEnumerable drivers) { + public ContentPartDriverCoordinator(IEnumerable drivers, IContentDefinitionManager contentDefinitionManager) { _drivers = drivers; + _contentDefinitionManager = contentDefinitionManager; Logger = NullLogger.Instance; } public ILogger Logger { get; set; } + + public override void Activating(ActivatingContentContext context) { + var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(context.ContentType); + if (contentTypeDefinition == null) + return; + + foreach (var partInfo in _drivers.SelectMany(cpp => cpp.GetPartInfo())) { + var partName = partInfo.PartName; + var typePartDefinition = contentTypeDefinition.Parts.FirstOrDefault(p => p.PartDefinition.Name == partName); + if (typePartDefinition != null) { + context.Builder.Weld(partInfo.Factory(typePartDefinition)); + } + } + } public override void BuildDisplayModel(BuildDisplayModelContext context) { _drivers.Invoke(driver => { diff --git a/src/Orchard/ContentManagement/IContentManager.cs b/src/Orchard/ContentManagement/IContentManager.cs index a37108fdf..ba8c704d4 100644 --- a/src/Orchard/ContentManagement/IContentManager.cs +++ b/src/Orchard/ContentManagement/IContentManager.cs @@ -20,7 +20,6 @@ namespace Orchard.ContentManagement { void Remove(ContentItem contentItem); void Index(ContentItem contentItem, IDocumentIndex documentIndex); - ISearchBuilder Search(); void Flush(); IContentQuery Query(); diff --git a/src/Orchard/ContentManagement/MetaData/ContentPartHandler.cs b/src/Orchard/ContentManagement/MetaData/ContentPartHandler.cs deleted file mode 100644 index 465ac806d..000000000 --- a/src/Orchard/ContentManagement/MetaData/ContentPartHandler.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Orchard.ContentManagement.Handlers; -using Orchard.ContentManagement.Drivers; - -namespace Orchard.ContentManagement.MetaData { - public class ContentPartHandler : ContentHandlerBase { - private readonly IEnumerable _contentPartDrivers; - private readonly IContentDefinitionManager _contentDefinitionManager; - - public ContentPartHandler(IEnumerable contentPartDrivers, IContentDefinitionManager contentDefinitionManager) { - _contentPartDrivers = contentPartDrivers; - _contentDefinitionManager = contentDefinitionManager; - } - - public override void Activating(ActivatingContentContext context) { - var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(context.ContentType); - if (contentTypeDefinition == null) - return; - - foreach (var partInfo in _contentPartDrivers.SelectMany(cpp => cpp.GetPartInfo())) { - var partName = partInfo.PartName; - var typePartDefinition = contentTypeDefinition.Parts.FirstOrDefault(p => p.PartDefinition.Name == partName); - if (typePartDefinition != null) { - context.Builder.Weld(partInfo.Factory(typePartDefinition)); - } - } - } - } -} diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 61ae62328..f3f35d022 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -172,11 +172,11 @@ Code - + Code - + Code @@ -185,7 +185,7 @@ Code - + Code @@ -299,9 +299,6 @@ - - Code - Code