mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-07-16 20:09:40 +08:00
Refactoring content type cache
--HG-- branch : 1.x
This commit is contained in:
parent
63a9167565
commit
c6ac96a23a
@ -5,6 +5,7 @@ using Autofac;
|
|||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Drivers;
|
using Orchard.ContentManagement.Drivers;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
@ -30,6 +31,7 @@ namespace Orchard.Core.Tests.Body {
|
|||||||
|
|
||||||
public override void Register(ContainerBuilder builder) {
|
public override void Register(ContainerBuilder builder) {
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
||||||
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using Autofac;
|
using Autofac;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.Records;
|
using Orchard.ContentManagement.Records;
|
||||||
@ -36,6 +37,7 @@ namespace Orchard.Core.Tests.Scheduling {
|
|||||||
builder.RegisterInstance(new Mock<IOrchardServices>().Object);
|
builder.RegisterInstance(new Mock<IOrchardServices>().Object);
|
||||||
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
||||||
builder.RegisterType<ShapeTableLocator>().As<IShapeTableLocator>();
|
builder.RegisterType<ShapeTableLocator>().As<IShapeTableLocator>();
|
||||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using Autofac;
|
using Autofac;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.Records;
|
using Orchard.ContentManagement.Records;
|
||||||
@ -39,6 +40,7 @@ namespace Orchard.Core.Tests.Scheduling {
|
|||||||
public override void Register(ContainerBuilder builder) {
|
public override void Register(ContainerBuilder builder) {
|
||||||
builder.RegisterInstance(_mockServices.Object);
|
builder.RegisterInstance(_mockServices.Object);
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
||||||
builder.RegisterType<ShapeTableLocator>().As<IShapeTableLocator>();
|
builder.RegisterType<ShapeTableLocator>().As<IShapeTableLocator>();
|
||||||
|
@ -4,6 +4,7 @@ using Autofac;
|
|||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.Comments.Handlers;
|
using Orchard.Comments.Handlers;
|
||||||
using Orchard.Comments.Models;
|
using Orchard.Comments.Models;
|
||||||
using Orchard.Comments.Services;
|
using Orchard.Comments.Services;
|
||||||
@ -37,6 +38,7 @@ namespace Orchard.Tests.Modules.Comments.Services {
|
|||||||
public override void Register(ContainerBuilder builder) {
|
public override void Register(ContainerBuilder builder) {
|
||||||
builder.RegisterType<CommentService>().As<ICommentService>();
|
builder.RegisterType<CommentService>().As<ICommentService>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
||||||
|
@ -5,6 +5,7 @@ using Autofac;
|
|||||||
using Lucene.Services;
|
using Lucene.Services;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Drivers;
|
using Orchard.ContentManagement.Drivers;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
@ -65,6 +66,7 @@ namespace Orchard.Tests.Modules.Indexing {
|
|||||||
builder.RegisterType<DefaultIndexManager>().As<IIndexManager>();
|
builder.RegisterType<DefaultIndexManager>().As<IIndexManager>();
|
||||||
builder.RegisterType<IndexingTaskManager>().As<IIndexingTaskManager>();
|
builder.RegisterType<IndexingTaskManager>().As<IIndexingTaskManager>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(_contentDefinitionManager.Object);
|
builder.RegisterInstance(_contentDefinitionManager.Object);
|
||||||
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
||||||
|
@ -5,6 +5,7 @@ using System.Linq;
|
|||||||
using Autofac;
|
using Autofac;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
using Orchard.ContentManagement.Records;
|
using Orchard.ContentManagement.Records;
|
||||||
@ -37,6 +38,7 @@ namespace Orchard.Tests.Modules.Tags.Services {
|
|||||||
builder.RegisterType<TagsPartHandler>().As<IContentHandler>();
|
builder.RegisterType<TagsPartHandler>().As<IContentHandler>();
|
||||||
builder.RegisterType<OrchardServices>().As<IOrchardServices>();
|
builder.RegisterType<OrchardServices>().As<IOrchardServices>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
|
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.MetaData.Models;
|
using Orchard.ContentManagement.MetaData.Models;
|
||||||
using Orchard.ContentManagement.MetaData.Services;
|
using Orchard.ContentManagement.MetaData.Services;
|
||||||
@ -72,6 +73,7 @@ namespace Orchard.Tests.Modules.Users.Services {
|
|||||||
builder.RegisterType<MembershipService>().As<IMembershipService>();
|
builder.RegisterType<MembershipService>().As<IMembershipService>();
|
||||||
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType(typeof(SettingsFormatter)).As<ISettingsFormatter>();
|
builder.RegisterType(typeof(SettingsFormatter)).As<ISettingsFormatter>();
|
||||||
builder.RegisterType<ContentDefinitionManager>().As<IContentDefinitionManager>();
|
builder.RegisterType<ContentDefinitionManager>().As<IContentDefinitionManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
|
@ -6,6 +6,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.MetaData.Models;
|
using Orchard.ContentManagement.MetaData.Models;
|
||||||
using Orchard.ContentManagement.MetaData.Services;
|
using Orchard.ContentManagement.MetaData.Services;
|
||||||
@ -83,6 +84,7 @@ namespace Orchard.Tests.Modules.Users.Services {
|
|||||||
builder.RegisterInstance(_clock = new StubClock()).As<IClock>();
|
builder.RegisterInstance(_clock = new StubClock()).As<IClock>();
|
||||||
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType(typeof(SettingsFormatter)).As<ISettingsFormatter>();
|
builder.RegisterType(typeof(SettingsFormatter)).As<ISettingsFormatter>();
|
||||||
builder.RegisterType<ContentDefinitionManager>().As<IContentDefinitionManager>();
|
builder.RegisterType<ContentDefinitionManager>().As<IContentDefinitionManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using Autofac;
|
using Autofac;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
@ -88,6 +89,7 @@ namespace Orchard.Tests.Modules.Widgets.Services {
|
|||||||
.Returns(new[] { theme1, theme2, theme3, module1 });
|
.Returns(new[] { theme1, theme2, theme3, module1 });
|
||||||
|
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
builder.RegisterInstance(new Mock<ITransactionManager>().Object);
|
||||||
|
@ -3,6 +3,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.Data;
|
using Orchard.Data;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
@ -47,6 +48,7 @@ namespace Orchard.Tests.ContentManagement {
|
|||||||
|
|
||||||
builder.RegisterModule(new ContentModule());
|
builder.RegisterModule(new ContentModule());
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
||||||
|
@ -6,6 +6,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.MetaData.Builders;
|
using Orchard.ContentManagement.MetaData.Builders;
|
||||||
using Orchard.ContentManagement.MetaData.Models;
|
using Orchard.ContentManagement.MetaData.Models;
|
||||||
@ -59,6 +60,7 @@ namespace Orchard.Tests.ContentManagement {
|
|||||||
var builder = new ContainerBuilder();
|
var builder = new ContainerBuilder();
|
||||||
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
builder.RegisterType<DefaultContentQuery>().As<IContentQuery>();
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(_contentDefinitionManager.Object);
|
builder.RegisterInstance(_contentDefinitionManager.Object);
|
||||||
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
||||||
|
@ -3,6 +3,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.Data;
|
using Orchard.Data;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
@ -45,6 +46,7 @@ namespace Orchard.Tests.ContentManagement {
|
|||||||
|
|
||||||
builder.RegisterModule(new ContentModule());
|
builder.RegisterModule(new ContentModule());
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
||||||
|
@ -5,6 +5,7 @@ using Autofac;
|
|||||||
using Moq;
|
using Moq;
|
||||||
using NHibernate;
|
using NHibernate;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.Data;
|
using Orchard.Data;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
@ -48,6 +49,7 @@ namespace Orchard.Tests.ContentManagement {
|
|||||||
|
|
||||||
builder.RegisterModule(new ContentModule());
|
builder.RegisterModule(new ContentModule());
|
||||||
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
builder.RegisterType<DefaultContentManager>().As<IContentManager>().SingleInstance();
|
||||||
|
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
|
||||||
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
|
||||||
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
builder.RegisterInstance(new Mock<IContentDefinitionManager>().Object);
|
||||||
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
builder.RegisterInstance(new Mock<IContentDisplay>().Object);
|
||||||
|
@ -30,7 +30,7 @@ namespace Orchard.Caching {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private CacheEntry UpdateEntry(CacheEntry currentEntry, TKey k, Func<AcquireContext<TKey>, TResult> acquire) {
|
private CacheEntry UpdateEntry(CacheEntry currentEntry, TKey k, Func<AcquireContext<TKey>, TResult> acquire) {
|
||||||
var entry = (currentEntry.Tokens.Any(t => !t.IsCurrent)) ? CreateEntry(k, acquire) : currentEntry;
|
var entry = (currentEntry.Tokens.Any(t => t != null && !t.IsCurrent)) ? CreateEntry(k, acquire) : currentEntry;
|
||||||
PropagateTokens(entry);
|
PropagateTokens(entry);
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ using NHibernate;
|
|||||||
using NHibernate.Criterion;
|
using NHibernate.Criterion;
|
||||||
using NHibernate.SqlCommand;
|
using NHibernate.SqlCommand;
|
||||||
using NHibernate.Transform;
|
using NHibernate.Transform;
|
||||||
|
using Orchard.Caching;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
using Orchard.ContentManagement.MetaData;
|
using Orchard.ContentManagement.MetaData;
|
||||||
using Orchard.ContentManagement.MetaData.Builders;
|
using Orchard.ContentManagement.MetaData.Builders;
|
||||||
@ -27,6 +28,7 @@ namespace Orchard.ContentManagement {
|
|||||||
private readonly IRepository<ContentItemRecord> _contentItemRepository;
|
private readonly IRepository<ContentItemRecord> _contentItemRepository;
|
||||||
private readonly IRepository<ContentItemVersionRecord> _contentItemVersionRepository;
|
private readonly IRepository<ContentItemVersionRecord> _contentItemVersionRepository;
|
||||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||||
|
private readonly ICacheManager _cacheManager;
|
||||||
private readonly Func<IContentManagerSession> _contentManagerSession;
|
private readonly Func<IContentManagerSession> _contentManagerSession;
|
||||||
private readonly Lazy<IContentDisplay> _contentDisplay;
|
private readonly Lazy<IContentDisplay> _contentDisplay;
|
||||||
private readonly Lazy<ISessionLocator> _sessionLocator;
|
private readonly Lazy<ISessionLocator> _sessionLocator;
|
||||||
@ -40,6 +42,7 @@ namespace Orchard.ContentManagement {
|
|||||||
IRepository<ContentItemRecord> contentItemRepository,
|
IRepository<ContentItemRecord> contentItemRepository,
|
||||||
IRepository<ContentItemVersionRecord> contentItemVersionRepository,
|
IRepository<ContentItemVersionRecord> contentItemVersionRepository,
|
||||||
IContentDefinitionManager contentDefinitionManager,
|
IContentDefinitionManager contentDefinitionManager,
|
||||||
|
ICacheManager cacheManager,
|
||||||
Func<IContentManagerSession> contentManagerSession,
|
Func<IContentManagerSession> contentManagerSession,
|
||||||
Lazy<IContentDisplay> contentDisplay,
|
Lazy<IContentDisplay> contentDisplay,
|
||||||
Lazy<ISessionLocator> sessionLocator,
|
Lazy<ISessionLocator> sessionLocator,
|
||||||
@ -49,6 +52,7 @@ namespace Orchard.ContentManagement {
|
|||||||
_contentItemRepository = contentItemRepository;
|
_contentItemRepository = contentItemRepository;
|
||||||
_contentItemVersionRepository = contentItemVersionRepository;
|
_contentItemVersionRepository = contentItemVersionRepository;
|
||||||
_contentDefinitionManager = contentDefinitionManager;
|
_contentDefinitionManager = contentDefinitionManager;
|
||||||
|
_cacheManager = cacheManager;
|
||||||
_contentManagerSession = contentManagerSession;
|
_contentManagerSession = contentManagerSession;
|
||||||
_handlers = handlers;
|
_handlers = handlers;
|
||||||
_contentDisplay = contentDisplay;
|
_contentDisplay = contentDisplay;
|
||||||
@ -661,13 +665,19 @@ namespace Orchard.ContentManagement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ContentTypeRecord AcquireContentTypeRecord(string contentType) {
|
private ContentTypeRecord AcquireContentTypeRecord(string contentType) {
|
||||||
var contentTypeRecord = _contentTypeRepository.Get(x => x.Name == contentType);
|
var contentTypeId = _cacheManager.Get(contentType + "_Record", ctx => {
|
||||||
if (contentTypeRecord == null) {
|
var contentTypeRecord = _contentTypeRepository.Get(x => x.Name == contentType);
|
||||||
//TEMP: this is not safe... ContentItem types could be created concurrently?
|
|
||||||
contentTypeRecord = new ContentTypeRecord { Name = contentType };
|
if (contentTypeRecord == null) {
|
||||||
_contentTypeRepository.Create(contentTypeRecord);
|
//TEMP: this is not safe... ContentItem types could be created concurrently?
|
||||||
}
|
contentTypeRecord = new ContentTypeRecord { Name = contentType };
|
||||||
return contentTypeRecord;
|
_contentTypeRepository.Create(contentTypeRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
return contentTypeRecord.Id;
|
||||||
|
});
|
||||||
|
|
||||||
|
return _contentTypeRepository.Get(contentTypeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Index(ContentItem contentItem, IDocumentIndex documentIndex) {
|
public void Index(ContentItem contentItem, IDocumentIndex documentIndex) {
|
||||||
|
Loading…
Reference in New Issue
Block a user