mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Moving around some handler/driver machinary
Relocating IContentHandler imlementations that power IContentXxxDriver interfaces Giving them component role suffix Coordinator Merging two handlers into one content part driver coordinator --HG-- branch : dev
This commit is contained in:
@@ -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<ContentPartDriverHandler>().As<IContentHandler>();
|
||||
builder.RegisterType<ContentPartDriverCoordinator>().As<IContentHandler>();
|
||||
builder.RegisterAutoMocking();
|
||||
_container = builder.Build();
|
||||
}
|
||||
|
@@ -168,7 +168,7 @@
|
||||
<Compile Include="ContentManagement\Models\Phi.cs" />
|
||||
<Compile Include="ContentManagement\Models\Styled.cs" />
|
||||
<Compile Include="ContentManagement\Models\StyledHandler.cs" />
|
||||
<Compile Include="ContentManagement\ContentPartDriverHandlerTests.cs">
|
||||
<Compile Include="ContentManagement\Handlers\Coordinators\ContentPartDriverCoordinatorTests.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Records\DeltaRecord.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<T> ISearchService.Query<T>(string query, int page, int? pageSize, bool filterCulture, string[] searchFields, Func<ISearchHit, T> 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<T>(searchBuilder.Search().Select(shapeResult)) {
|
||||
PageNumber = page,
|
||||
PageSize = pageSize != null ? (int) pageSize : totalCount,
|
||||
PageSize = pageSize != null ? (int)pageSize : totalCount,
|
||||
TotalItemCount = totalCount
|
||||
};
|
||||
|
||||
|
@@ -18,7 +18,6 @@ namespace Orchard.ContentManagement {
|
||||
private readonly IRepository<ContentItemVersionRecord> _contentItemVersionRepository;
|
||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||
private readonly Func<IContentManagerSession> _contentManagerSession;
|
||||
private readonly IIndexManager _indexManager;
|
||||
|
||||
public DefaultContentManager(
|
||||
IComponentContext context,
|
||||
@@ -26,15 +25,13 @@ namespace Orchard.ContentManagement {
|
||||
IRepository<ContentItemRecord> contentItemRepository,
|
||||
IRepository<ContentItemVersionRecord> contentItemVersionRepository,
|
||||
IContentDefinitionManager contentDefinitionManager,
|
||||
Func<IContentManagerSession> contentManagerSession,
|
||||
IIndexManager indexManager) {
|
||||
Func<IContentManagerSession> contentManagerSession) {
|
||||
_context = context;
|
||||
_contentTypeRepository = contentTypeRepository;
|
||||
_contentItemRepository = contentItemRepository;
|
||||
_contentItemVersionRepository = contentItemVersionRepository;
|
||||
_contentDefinitionManager = contentDefinitionManager;
|
||||
_contentManagerSession = contentManagerSession;
|
||||
_indexManager = indexManager;
|
||||
}
|
||||
|
||||
private IEnumerable<IContentHandler> _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();
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
@@ -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<IContentFieldDriver> _drivers;
|
||||
|
||||
public ContentFieldDriverHandler(IEnumerable<IContentFieldDriver> drivers) {
|
||||
public ContentFieldDriverCoordinator(IEnumerable<IContentFieldDriver> drivers) {
|
||||
_drivers = drivers;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
@@ -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<IContentItemDriver> _drivers;
|
||||
|
||||
public ContentItemDriverHandler(IEnumerable<IContentItemDriver> drivers) {
|
||||
public ContentItemDriverCoordinator(IEnumerable<IContentItemDriver> drivers) {
|
||||
_drivers = drivers;
|
||||
Logger = NullLogger.Instance;
|
||||
}
|
@@ -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<IContentPartDriver> _drivers;
|
||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||
|
||||
public ContentPartDriverHandler(IEnumerable<IContentPartDriver> drivers) {
|
||||
public ContentPartDriverCoordinator(IEnumerable<IContentPartDriver> 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 => {
|
@@ -20,7 +20,6 @@ namespace Orchard.ContentManagement {
|
||||
void Remove(ContentItem contentItem);
|
||||
void Index(ContentItem contentItem, IDocumentIndex documentIndex);
|
||||
|
||||
ISearchBuilder Search();
|
||||
|
||||
void Flush();
|
||||
IContentQuery<ContentItem> Query();
|
||||
|
@@ -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<IContentPartDriver> _contentPartDrivers;
|
||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||
|
||||
public ContentPartHandler(IEnumerable<IContentPartDriver> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -172,11 +172,11 @@
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Drivers\ContentFieldDriver.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentFieldDriverHandler.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\Coordinators\ContentFieldDriverCoordinator.cs" />
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemDriver.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemDriverHandler.cs">
|
||||
<Compile Include="ContentManagement\Drivers\Coordinators\ContentItemDriverCoordinator.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Drivers\ContentItemTemplateResult.cs">
|
||||
@@ -185,7 +185,7 @@
|
||||
<Compile Include="ContentManagement\Drivers\ContentPartDriver.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Drivers\ContentPartDriverHandler.cs">
|
||||
<Compile Include="ContentManagement\Drivers\Coordinators\ContentPartDriverCoordinator.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\Drivers\ContentTemplateResult.cs" />
|
||||
@@ -299,9 +299,6 @@
|
||||
<Compile Include="ContentManagement\MetaData\Builders\ContentPartDefinitionBuilder.cs" />
|
||||
<Compile Include="ContentManagement\MetaData\Builders\ContentTypeDefinitionBuilder.cs" />
|
||||
<Compile Include="ContentManagement\MetaData\ContentFieldInfo.cs" />
|
||||
<Compile Include="ContentManagement\MetaData\ContentPartHandler.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ContentManagement\MetaData\ContentPartInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
|
Reference in New Issue
Block a user