diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs index d9965490f..819680678 100644 --- a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs @@ -11,12 +11,15 @@ namespace Orchard.ContentManagement.MetaData.Builders { private readonly IList _fields; private readonly SettingsDictionary _settings; + public ContentPartDefinition Current { get; private set; } + public ContentPartDefinitionBuilder() : this(new ContentPartDefinition(null)) { } public ContentPartDefinitionBuilder(ContentPartDefinition existing) { _part = existing; + if (existing == null) { _fields = new List(); _settings = new SettingsDictionary(); diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs index f748a0a4d..db3ee97c3 100644 --- a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs @@ -5,7 +5,11 @@ namespace Orchard.ContentManagement.MetaData.Builders { public abstract class ContentPartFieldDefinitionBuilder { protected readonly SettingsDictionary _settings; + public ContentPartFieldDefinition Current { get; private set; } + protected ContentPartFieldDefinitionBuilder(ContentPartFieldDefinition field) { + Current = field; + _settings = new SettingsDictionary(field.Settings.ToDictionary(kv => kv.Key, kv => kv.Value)); } diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs index 50eda2d78..a835bc8ff 100644 --- a/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs @@ -10,11 +10,15 @@ namespace Orchard.ContentManagement.MetaData.Builders { private readonly IList _parts; private readonly SettingsDictionary _settings; + public ContentTypeDefinition Current { get; private set; } + public ContentTypeDefinitionBuilder() : this(new ContentTypeDefinition(null, null)) { } public ContentTypeDefinitionBuilder(ContentTypeDefinition existing) { + Current = existing; + if (existing == null) { _parts = new List(); _settings = new SettingsDictionary(); @@ -81,8 +85,11 @@ namespace Orchard.ContentManagement.MetaData.Builders { class PartConfigurerImpl : ContentTypePartDefinitionBuilder { private readonly ContentPartDefinition _partDefinition; + public ContentTypePartDefinition Current { get; private set; } + public PartConfigurerImpl(ContentTypePartDefinition part) : base(part) { + Current = part; _partDefinition = part.PartDefinition; }