Clean up of conventions and adding CollectionConvention

--HG--
branch : 1.x
rename : src/Orchard/Data/Conventions/CacheConvention.cs => src/Orchard/Data/Conventions/CacheConventions.cs
This commit is contained in:
Nicholas Mayne 2013-07-10 23:54:06 +01:00
parent 8162f99dbf
commit 10e6ed2c62
3 changed files with 19 additions and 11 deletions

View File

@ -7,13 +7,19 @@ using FluentNHibernate.Conventions.Instances;
using Orchard.Environment.ShellBuilders.Models;
namespace Orchard.Data.Conventions {
public class CacheConvention : IClassConvention, IConventionAcceptance<IClassInspector> {
public class CacheConventions :
IClassConvention, IClassConventionAcceptance,
ICollectionConvention, ICollectionConventionAcceptance,
IHasManyConvention, IHasManyConventionAcceptance,
IHasManyToManyConvention, IHasManyToManyConventionAcceptance {
private readonly IEnumerable<RecordBlueprint> _descriptors;
public CacheConvention(IEnumerable<RecordBlueprint> descriptors) {
public CacheConventions(IEnumerable<RecordBlueprint> descriptors) {
_descriptors = descriptors;
}
public void Apply(IClassInstance instance) {
instance.Cache.ReadWrite();
}
@ -21,14 +27,7 @@ namespace Orchard.Data.Conventions {
public void Accept(IAcceptanceCriteria<IClassInspector> criteria) {
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
}
}
public class CacheableCollectionConvention : IHasManyConvention, IHasManyConventionAcceptance, IHasManyToManyConvention {
private readonly IEnumerable<RecordBlueprint> _descriptors;
public CacheableCollectionConvention(IEnumerable<RecordBlueprint> descriptors) {
_descriptors = descriptors;
}
public void Apply(IOneToManyCollectionInstance instance) {
instance.Cache.ReadWrite();
@ -46,5 +45,14 @@ namespace Orchard.Data.Conventions {
public void Accept(IAcceptanceCriteria<IManyToManyCollectionInspector> criteria) {
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
}
public void Apply(ICollectionInstance instance) {
instance.Cache.ReadWrite();
}
public void Accept(IAcceptanceCriteria<ICollectionInspector> criteria) {
criteria.Expect(x => _descriptors.Any(d => d.Type.Name == x.EntityType.Name));
}
}
}

View File

@ -62,7 +62,7 @@ namespace Orchard.Data.Providers {
// identical type names from different namespaces can be mapped without ambiguity
.Conventions.Setup(x => x.Add(AutoImport.Never()))
.Conventions.Add(new RecordTableNameConvention(recordDescriptors))
.Conventions.Add(new CacheConvention(recordDescriptors), new CacheableCollectionConvention(recordDescriptors))
.Conventions.Add(new CacheConventions(recordDescriptors))
.Alterations(alt => {
foreach (var recordAssembly in recordDescriptors.Select(x => x.Type.Assembly).Distinct()) {
alt.Add(new AutoMappingOverrideAlteration(recordAssembly));

View File

@ -191,7 +191,7 @@
<Compile Include="Data\Bags\StateValueProvider.cs" />
<Compile Include="Data\Bags\SValue.cs" />
<Compile Include="Data\Conventions\AggregateAttribute.cs" />
<Compile Include="Data\Conventions\CacheConvention.cs" />
<Compile Include="Data\Conventions\CacheConventions.cs" />
<Compile Include="Data\DefaultDatabaseCacheConfiguration.cs" />
<Compile Include="Data\IDatabaseCacheConfiguration.cs" />
<Compile Include="Data\Migration\AutomaticDataMigrations.cs" />