From 84a564e329875dbdfe8c8524c22364f2b4dc79ec Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Thu, 22 Jul 2010 11:55:08 -0700 Subject: [PATCH] Moving nested definition/builder classes to outer scope --HG-- branch : dev --- .../FieldStorageProviderSelectorTests.cs | 2 +- .../ContentManagement/Models/Phi.cs | 2 +- .../Core/Common/Settings/BodySettings.cs | 4 +- .../Settings/LocationSettingsEditorEvents.cs | 8 ++-- .../Metadata/ContentDefinitionManager.cs | 12 +++--- .../ViewModels/EditTypeViewModel.cs | 8 ++-- .../Orchard.Indexing/Settings/EditorEvents.cs | 4 +- src/Orchard/ContentManagement/ContentField.cs | 2 +- src/Orchard/ContentManagement/ContentPart.cs | 2 +- .../FieldStorageProviderSelector.cs | 2 +- .../FieldStorage/IFieldStorageProvider.cs | 2 +- .../IFieldStorageProviderSelector.cs | 2 +- .../InfosetStorage/InfosetStorageProvider.cs | 2 +- .../Handlers/ContentItemBuilder.cs | 2 +- .../Builders/ContentPartDefinitionBuilder.cs | 40 ++++++------------- .../ContentPartFieldDefinitionBuilder.cs | 20 ++++++++++ .../Builders/ContentTypeDefinitionBuilder.cs | 34 +++++----------- .../ContentTypePartDefinitionBuilder.cs | 20 ++++++++++ .../MetaData/ContentFieldInfo.cs | 2 +- .../MetaData/ContentPartInfo.cs | 2 +- .../IContentDefinitionEditorEvents.cs | 16 ++++---- .../MetaData/Models/ContentPartDefinition.cs | 23 ++--------- .../Models/ContentPartFieldDefinition.cs | 18 +++++++++ .../MetaData/Models/ContentTypeDefinition.cs | 21 ++-------- .../Models/ContentTypePartDefinition.cs | 16 ++++++++ src/Orchard/Orchard.Framework.csproj | 4 ++ 26 files changed, 142 insertions(+), 128 deletions(-) create mode 100644 src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs create mode 100644 src/Orchard/ContentManagement/MetaData/Builders/ContentTypePartDefinitionBuilder.cs create mode 100644 src/Orchard/ContentManagement/MetaData/Models/ContentPartFieldDefinition.cs create mode 100644 src/Orchard/ContentManagement/MetaData/Models/ContentTypePartDefinition.cs diff --git a/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/FieldStorageProviderSelectorTests.cs b/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/FieldStorageProviderSelectorTests.cs index 17a8859ef..d7d1e0276 100644 --- a/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/FieldStorageProviderSelectorTests.cs +++ b/src/Orchard.Tests/ContentManagement/Drivers/FieldStorage/FieldStorageProviderSelectorTests.cs @@ -30,7 +30,7 @@ namespace Orchard.Tests.ContentManagement.Drivers.FieldStorage { get { return "TestProvName"; } } - public IFieldStorage BindStorage(ContentPart contentPart, ContentPartDefinition.Field partFieldDefinition) { + public IFieldStorage BindStorage(ContentPart contentPart, ContentPartFieldDefinition partFieldDefinition) { throw new NotImplementedException(); } diff --git a/src/Orchard.Tests/ContentManagement/Models/Phi.cs b/src/Orchard.Tests/ContentManagement/Models/Phi.cs index 719e7aafa..b4f2977b4 100644 --- a/src/Orchard.Tests/ContentManagement/Models/Phi.cs +++ b/src/Orchard.Tests/ContentManagement/Models/Phi.cs @@ -4,7 +4,7 @@ using Orchard.ContentManagement.MetaData.Models; namespace Orchard.Tests.ContentManagement.Models { public class Phi : ContentField { public Phi() { - PartFieldDefinition = new ContentPartDefinition.Field(new ContentFieldDefinition("Phi"), "Phi", new SettingsDictionary()); + PartFieldDefinition = new ContentPartFieldDefinition(new ContentFieldDefinition("Phi"), "Phi", new SettingsDictionary()); } } } diff --git a/src/Orchard.Web/Core/Common/Settings/BodySettings.cs b/src/Orchard.Web/Core/Common/Settings/BodySettings.cs index 2e951ee00..dd79f0aba 100644 --- a/src/Orchard.Web/Core/Common/Settings/BodySettings.cs +++ b/src/Orchard.Web/Core/Common/Settings/BodySettings.cs @@ -22,7 +22,7 @@ namespace Orchard.Core.Common.Settings { } public class BodySettingsHooks : ContentDefinitionEditorEventsBase { - public override IEnumerable TypePartEditor(ContentTypeDefinition.Part definition) { + public override IEnumerable TypePartEditor(ContentTypePartDefinition definition) { if (definition.PartDefinition.Name != "BodyAspect") yield break; @@ -44,7 +44,7 @@ namespace Orchard.Core.Common.Settings { yield return DefinitionTemplate(model); } - public override IEnumerable TypePartEditorUpdate(ContentTypeDefinitionBuilder.PartConfigurer builder, IUpdateModel updateModel) { + public override IEnumerable TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) { if (builder.Name != "BodyAspect") yield break; diff --git a/src/Orchard.Web/Core/ContentsLocation/Settings/LocationSettingsEditorEvents.cs b/src/Orchard.Web/Core/ContentsLocation/Settings/LocationSettingsEditorEvents.cs index 48e167be7..a829121ae 100644 --- a/src/Orchard.Web/Core/ContentsLocation/Settings/LocationSettingsEditorEvents.cs +++ b/src/Orchard.Web/Core/ContentsLocation/Settings/LocationSettingsEditorEvents.cs @@ -63,7 +63,7 @@ namespace Orchard.Core.ContentsLocation.Settings { #endregion #region Part in the context of a content type - public override IEnumerable TypePartEditor(ContentTypeDefinition.Part definition) { + public override IEnumerable TypePartEditor(ContentTypePartDefinition definition) { // Look for the setting in the most specific settings first (part definition in type) // then in the global part definition. var partSettings = definition.Settings.GetModel(); @@ -80,7 +80,7 @@ namespace Orchard.Core.ContentsLocation.Settings { } } - public override IEnumerable TypePartEditorUpdate(ContentTypeDefinitionBuilder.PartConfigurer builder, IUpdateModel updateModel) { + public override IEnumerable TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) { var settings = new LocationSettings(); foreach (var location in GetPredefinedLocations()) { var viewModel = new LocationSettingsViewModel(); @@ -93,7 +93,7 @@ namespace Orchard.Core.ContentsLocation.Settings { #endregion #region Field within a content part - public override IEnumerable PartFieldEditor(ContentPartDefinition.Field definition) { + public override IEnumerable PartFieldEditor(ContentPartFieldDefinition definition) { var settings = definition.Settings.GetModel(); foreach (var location in GetPredefinedLocations()) { var viewModel = new LocationSettingsViewModel { @@ -105,7 +105,7 @@ namespace Orchard.Core.ContentsLocation.Settings { } } - public override IEnumerable PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) { + public override IEnumerable PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel) { var settings = new LocationSettings(); foreach (var location in GetPredefinedLocations()) { var viewModel = new LocationSettingsViewModel(); diff --git a/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs b/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs index 01abe216d..4cd0b8297 100644 --- a/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs +++ b/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs @@ -108,7 +108,7 @@ namespace Orchard.Core.Settings.Metadata { } } - private void Apply(ContentTypeDefinition.Part model, ContentTypePartDefinitionRecord record) { + private void Apply(ContentTypePartDefinition model, ContentTypePartDefinitionRecord record) { record.Settings = Compose(_settingsWriter.Map(model.Settings)); } @@ -137,7 +137,7 @@ namespace Orchard.Core.Settings.Metadata { } } - private void Apply(ContentPartDefinition.Field model, ContentPartFieldDefinitionRecord record) { + private void Apply(ContentPartFieldDefinition model, ContentPartFieldDefinitionRecord record) { record.Settings = Compose(_settingsWriter.Map(model.Settings)); } @@ -149,8 +149,8 @@ namespace Orchard.Core.Settings.Metadata { _settingsReader.Map(Parse(source.Settings))); } - ContentTypeDefinition.Part Build(ContentTypePartDefinitionRecord source) { - return new ContentTypeDefinition.Part( + ContentTypePartDefinition Build(ContentTypePartDefinitionRecord source) { + return new ContentTypePartDefinition( Build(source.ContentPartDefinitionRecord), _settingsReader.Map(Parse(source.Settings))); } @@ -162,8 +162,8 @@ namespace Orchard.Core.Settings.Metadata { _settingsReader.Map(Parse(source.Settings))); } - ContentPartDefinition.Field Build(ContentPartFieldDefinitionRecord source) { - return new ContentPartDefinition.Field( + ContentPartFieldDefinition Build(ContentPartFieldDefinitionRecord source) { + return new ContentPartFieldDefinition( Build(source.ContentFieldDefinitionRecord), source.Name, _settingsReader.Map(Parse(source.Settings))); diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs index 7e92bc80c..dd465633f 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/ViewModels/EditTypeViewModel.cs @@ -49,7 +49,7 @@ namespace Orchard.ContentTypes.ViewModels { Settings = new SettingsDictionary(); } - public EditTypePartViewModel(int index, ContentTypeDefinition.Part part) { + public EditTypePartViewModel(int index, ContentTypePartDefinition part) { Index = index; PartDefinition = new EditPartViewModel(part.PartDefinition); Settings = part.Settings; @@ -62,7 +62,7 @@ namespace Orchard.ContentTypes.ViewModels { public SettingsDictionary Settings { get; set; } public EditTypeViewModel Type { get; set; } public IEnumerable Templates { get; set; } - public ContentTypeDefinition.Part _Definition { get; private set; } + public ContentTypePartDefinition _Definition { get; private set; } } public class EditPartViewModel : BaseViewModel { @@ -92,7 +92,7 @@ namespace Orchard.ContentTypes.ViewModels { Settings = new SettingsDictionary(); } - public EditPartFieldViewModel(int index, ContentPartDefinition.Field field) { + public EditPartFieldViewModel(int index, ContentPartFieldDefinition field) { Index = index; Name = field.Name; FieldDefinition = new EditFieldViewModel(field.FieldDefinition); @@ -108,7 +108,7 @@ namespace Orchard.ContentTypes.ViewModels { public IEnumerable Templates { get; set; } public EditFieldViewModel FieldDefinition { get; set; } public SettingsDictionary Settings { get; set; } - public ContentPartDefinition.Field _Definition { get; private set; } + public ContentPartFieldDefinition _Definition { get; private set; } } public class EditFieldViewModel { diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs b/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs index 6ffd62caf..6183083ba 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Settings/EditorEvents.cs @@ -19,12 +19,12 @@ namespace Orchard.Indexing.Settings { yield return DefinitionTemplate(model); } - public override IEnumerable PartFieldEditor(ContentPartDefinition.Field definition) { + public override IEnumerable PartFieldEditor(ContentPartFieldDefinition definition) { var model = definition.Settings.GetModel(); yield return DefinitionTemplate(model); } - public override IEnumerable PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) { + public override IEnumerable PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel) { var model = new FieldIndexing(); updateModel.TryUpdateModel(model, "FieldIndexing", null, null); builder.WithSetting("FieldIndexing.Included", model.Included ? true.ToString() : null); diff --git a/src/Orchard/ContentManagement/ContentField.cs b/src/Orchard/ContentManagement/ContentField.cs index 1e2a5cd9d..b07f6c2ca 100644 --- a/src/Orchard/ContentManagement/ContentField.cs +++ b/src/Orchard/ContentManagement/ContentField.cs @@ -6,7 +6,7 @@ namespace Orchard.ContentManagement { public class ContentField { public string Name { get { return PartFieldDefinition.Name; } } - public ContentPartDefinition.Field PartFieldDefinition { get; set; } + public ContentPartFieldDefinition PartFieldDefinition { get; set; } public ContentFieldDefinition FieldDefinition { get { return PartFieldDefinition.FieldDefinition; } } public IFieldStorage Storage { get; set; } diff --git a/src/Orchard/ContentManagement/ContentPart.cs b/src/Orchard/ContentManagement/ContentPart.cs index 76f90f8eb..4deea594d 100644 --- a/src/Orchard/ContentManagement/ContentPart.cs +++ b/src/Orchard/ContentManagement/ContentPart.cs @@ -14,7 +14,7 @@ namespace Orchard.ContentManagement { public virtual ContentItem ContentItem { get; set; } public ContentTypeDefinition TypeDefinition { get { return ContentItem.TypeDefinition; } } - public ContentTypeDefinition.Part TypePartDefinition { get; set; } + public ContentTypePartDefinition TypePartDefinition { get; set; } public ContentPartDefinition PartDefinition { get { return TypePartDefinition.PartDefinition; } } public SettingsDictionary Settings { get { return TypePartDefinition.Settings; } } diff --git a/src/Orchard/ContentManagement/FieldStorage/FieldStorageProviderSelector.cs b/src/Orchard/ContentManagement/FieldStorage/FieldStorageProviderSelector.cs index 201bdf922..643efbc13 100644 --- a/src/Orchard/ContentManagement/FieldStorage/FieldStorageProviderSelector.cs +++ b/src/Orchard/ContentManagement/FieldStorage/FieldStorageProviderSelector.cs @@ -13,7 +13,7 @@ namespace Orchard.ContentManagement.FieldStorage { _storageProviders = storageProviders; } - public IFieldStorageProvider GetProvider(ContentPartDefinition.Field partFieldDefinition) { + public IFieldStorageProvider GetProvider(ContentPartFieldDefinition partFieldDefinition) { IFieldStorageProvider provider = null; diff --git a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProvider.cs b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProvider.cs index ee715e75d..8ce2f3996 100644 --- a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProvider.cs +++ b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProvider.cs @@ -6,6 +6,6 @@ namespace Orchard.ContentManagement.FieldStorage { IFieldStorage BindStorage( ContentPart contentPart, - ContentPartDefinition.Field partFieldDefinition); + ContentPartFieldDefinition partFieldDefinition); } } \ No newline at end of file diff --git a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProviderSelector.cs b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProviderSelector.cs index f09423d5e..ef7ef4981 100644 --- a/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProviderSelector.cs +++ b/src/Orchard/ContentManagement/FieldStorage/IFieldStorageProviderSelector.cs @@ -2,6 +2,6 @@ namespace Orchard.ContentManagement.FieldStorage { public interface IFieldStorageProviderSelector : IDependency { - IFieldStorageProvider GetProvider(ContentPartDefinition.Field partFieldDefinition); + IFieldStorageProvider GetProvider(ContentPartFieldDefinition partFieldDefinition); } } \ No newline at end of file diff --git a/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs b/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs index a0fb51ab9..016de4f47 100644 --- a/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs +++ b/src/Orchard/ContentManagement/FieldStorage/InfosetStorage/InfosetStorageProvider.cs @@ -8,7 +8,7 @@ namespace Orchard.ContentManagement.FieldStorage.InfosetStorage { get { return FieldStorageProviderSelector.DefaultProviderName; } } - public IFieldStorage BindStorage(ContentPart contentPart, ContentPartDefinition.Field partFieldDefinition) { + public IFieldStorage BindStorage(ContentPart contentPart, ContentPartFieldDefinition partFieldDefinition) { var partName = XmlConvert.EncodeLocalName(contentPart.PartDefinition.Name); var fieldName = XmlConvert.EncodeLocalName(partFieldDefinition.Name); var infosetPart = contentPart.As(); diff --git a/src/Orchard/ContentManagement/Handlers/ContentItemBuilder.cs b/src/Orchard/ContentManagement/Handlers/ContentItemBuilder.cs index f7af0e21b..1d2498493 100644 --- a/src/Orchard/ContentManagement/Handlers/ContentItemBuilder.cs +++ b/src/Orchard/ContentManagement/Handlers/ContentItemBuilder.cs @@ -23,7 +23,7 @@ namespace Orchard.ContentManagement.Handlers { var typePartDefinition = _definition.Parts.FirstOrDefault(p => p.PartDefinition.Name == partName); if (typePartDefinition == null) { - typePartDefinition = new ContentTypeDefinition.Part( + typePartDefinition = new ContentTypePartDefinition( new ContentPartDefinition(partName), new SettingsDictionary()); diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs index 1680355ce..c4497e16b 100644 --- a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartDefinitionBuilder.cs @@ -7,7 +7,7 @@ using Orchard.ContentManagement.MetaData.Models; namespace Orchard.ContentManagement.MetaData.Builders { public class ContentPartDefinitionBuilder { private string _name; - private readonly IList _fields; + private readonly IList _fields; private readonly SettingsDictionary _settings; public ContentPartDefinitionBuilder() @@ -16,7 +16,7 @@ namespace Orchard.ContentManagement.MetaData.Builders { public ContentPartDefinitionBuilder(ContentPartDefinition existing) { if (existing == null) { - _fields = new List(); + _fields = new List(); _settings = new SettingsDictionary(); } else { @@ -54,7 +54,7 @@ namespace Orchard.ContentManagement.MetaData.Builders { return WithField(fieldName, configuration => { }); } - public ContentPartDefinitionBuilder WithField(string fieldName, Action configuration) { + public ContentPartDefinitionBuilder WithField(string fieldName, Action configuration) { var existingField = _fields.FirstOrDefault(x => x.Name == fieldName); if (existingField != null) { @@ -64,7 +64,7 @@ namespace Orchard.ContentManagement.MetaData.Builders { } } else { - existingField = new ContentPartDefinition.Field(fieldName); + existingField = new ContentPartFieldDefinition(fieldName); } var configurer = new FieldConfigurerImpl(existingField); configuration(configurer); @@ -72,42 +72,26 @@ namespace Orchard.ContentManagement.MetaData.Builders { return this; } - public abstract class FieldConfigurer { - protected readonly SettingsDictionary _settings; - - protected FieldConfigurer(ContentPartDefinition.Field field) { - _settings = new SettingsDictionary(field.Settings.ToDictionary(kv => kv.Key, kv => kv.Value)); - } - - public FieldConfigurer WithSetting(string name, string value) { - _settings[name] = value; - return this; - } - - public abstract FieldConfigurer OfType(ContentFieldDefinition fieldDefinition); - public abstract FieldConfigurer OfType(string fieldType); - } - - class FieldConfigurerImpl : FieldConfigurer { + class FieldConfigurerImpl : ContentPartFieldDefinitionBuilder { private ContentFieldDefinition _fieldDefinition; private readonly string _fieldName; - public FieldConfigurerImpl(ContentPartDefinition.Field field) + public FieldConfigurerImpl(ContentPartFieldDefinition field) : base(field) { _fieldDefinition = field.FieldDefinition; _fieldName = field.Name; } - public ContentPartDefinition.Field Build() { - return new ContentPartDefinition.Field(_fieldDefinition, _fieldName, _settings); + public ContentPartFieldDefinition Build() { + return new ContentPartFieldDefinition(_fieldDefinition, _fieldName, _settings); } - public override FieldConfigurer OfType(ContentFieldDefinition fieldDefinition) { + public override ContentPartFieldDefinitionBuilder OfType(ContentFieldDefinition fieldDefinition) { _fieldDefinition = fieldDefinition; return this; } - public override FieldConfigurer OfType(string fieldType) { + public override ContentPartFieldDefinitionBuilder OfType(string fieldType) { _fieldDefinition = new ContentFieldDefinition(fieldType); return this; } @@ -147,13 +131,13 @@ namespace Orchard.ContentManagement.MetaData.Builders { return obj; } - public static ContentTypeDefinitionBuilder.PartConfigurer WithLocation(this ContentTypeDefinitionBuilder.PartConfigurer obj, IDictionary settings) { + public static ContentTypePartDefinitionBuilder WithLocation(this ContentTypePartDefinitionBuilder obj, IDictionary settings) { foreach (var entry in GetSettingEntries(settings)) obj = obj.WithSetting(entry.Key, entry.Value); return obj; } - public static ContentPartDefinitionBuilder.FieldConfigurer WithLocation(this ContentPartDefinitionBuilder.FieldConfigurer obj, IDictionary settings) { + public static ContentPartFieldDefinitionBuilder WithLocation(this ContentPartFieldDefinitionBuilder obj, IDictionary settings) { foreach (var entry in GetSettingEntries(settings)) obj = obj.WithSetting(entry.Key, entry.Value); return obj; diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs new file mode 100644 index 000000000..e49d18e56 --- /dev/null +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentPartFieldDefinitionBuilder.cs @@ -0,0 +1,20 @@ +using System.Linq; +using Orchard.ContentManagement.MetaData.Models; + +namespace Orchard.ContentManagement.MetaData.Builders { + public abstract class ContentPartFieldDefinitionBuilder { + protected readonly SettingsDictionary _settings; + + protected ContentPartFieldDefinitionBuilder(ContentPartFieldDefinition field) { + _settings = new SettingsDictionary(field.Settings.ToDictionary(kv => kv.Key, kv => kv.Value)); + } + + public ContentPartFieldDefinitionBuilder WithSetting(string name, string value) { + _settings[name] = value; + return this; + } + + public abstract ContentPartFieldDefinitionBuilder OfType(ContentFieldDefinition fieldDefinition); + public abstract ContentPartFieldDefinitionBuilder OfType(string fieldType); + } +} \ No newline at end of file diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs index c0df7d18f..bc9630647 100644 --- a/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypeDefinitionBuilder.cs @@ -7,7 +7,7 @@ namespace Orchard.ContentManagement.MetaData.Builders { public class ContentTypeDefinitionBuilder { private string _name; private string _displayName; - private readonly IList _parts; + private readonly IList _parts; private readonly SettingsDictionary _settings; public ContentTypeDefinitionBuilder() @@ -16,7 +16,7 @@ namespace Orchard.ContentManagement.MetaData.Builders { public ContentTypeDefinitionBuilder(ContentTypeDefinition existing) { if (existing == null) { - _parts = new List(); + _parts = new List(); _settings = new SettingsDictionary(); } else { @@ -62,17 +62,17 @@ namespace Orchard.ContentManagement.MetaData.Builders { return WithPart(partName, configuration => { }); } - public ContentTypeDefinitionBuilder WithPart(string partName, Action configuration) { + public ContentTypeDefinitionBuilder WithPart(string partName, Action configuration) { return WithPart(new ContentPartDefinition(partName), configuration); } - public ContentTypeDefinitionBuilder WithPart(ContentPartDefinition partDefinition, Action configuration) { + public ContentTypeDefinitionBuilder WithPart(ContentPartDefinition partDefinition, Action configuration) { var existingPart = _parts.SingleOrDefault(x => x.PartDefinition.Name == partDefinition.Name); if (existingPart != null) { _parts.Remove(existingPart); } else { - existingPart = new ContentTypeDefinition.Part(partDefinition, new SettingsDictionary()); + existingPart = new ContentTypePartDefinition(partDefinition, new SettingsDictionary()); } var configurer = new PartConfigurerImpl(existingPart); configuration(configurer); @@ -80,32 +80,16 @@ namespace Orchard.ContentManagement.MetaData.Builders { return this; } - public abstract class PartConfigurer { - protected readonly SettingsDictionary _settings; - - protected PartConfigurer(ContentTypeDefinition.Part part) { - Name = part.PartDefinition.Name; - _settings = new SettingsDictionary(part.Settings.ToDictionary(kv => kv.Key, kv => kv.Value)); - } - - public string Name { get; private set; } - - public PartConfigurer WithSetting(string name, string value) { - _settings[name] = value; - return this; - } - } - - class PartConfigurerImpl : PartConfigurer { + class PartConfigurerImpl : ContentTypePartDefinitionBuilder { private readonly ContentPartDefinition _partDefinition; - public PartConfigurerImpl(ContentTypeDefinition.Part part) + public PartConfigurerImpl(ContentTypePartDefinition part) : base(part) { _partDefinition = part.PartDefinition; } - public ContentTypeDefinition.Part Build() { - return new ContentTypeDefinition.Part(_partDefinition, _settings); + public ContentTypePartDefinition Build() { + return new ContentTypePartDefinition(_partDefinition, _settings); } } diff --git a/src/Orchard/ContentManagement/MetaData/Builders/ContentTypePartDefinitionBuilder.cs b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypePartDefinitionBuilder.cs new file mode 100644 index 000000000..479443729 --- /dev/null +++ b/src/Orchard/ContentManagement/MetaData/Builders/ContentTypePartDefinitionBuilder.cs @@ -0,0 +1,20 @@ +using System.Linq; +using Orchard.ContentManagement.MetaData.Models; + +namespace Orchard.ContentManagement.MetaData.Builders { + public abstract class ContentTypePartDefinitionBuilder { + protected readonly SettingsDictionary _settings; + + protected ContentTypePartDefinitionBuilder(ContentTypePartDefinition part) { + Name = part.PartDefinition.Name; + _settings = new SettingsDictionary(part.Settings.ToDictionary(kv => kv.Key, kv => kv.Value)); + } + + public string Name { get; private set; } + + public ContentTypePartDefinitionBuilder WithSetting(string name, string value) { + _settings[name] = value; + return this; + } + } +} \ No newline at end of file diff --git a/src/Orchard/ContentManagement/MetaData/ContentFieldInfo.cs b/src/Orchard/ContentManagement/MetaData/ContentFieldInfo.cs index 479cf1d86..4238c3496 100644 --- a/src/Orchard/ContentManagement/MetaData/ContentFieldInfo.cs +++ b/src/Orchard/ContentManagement/MetaData/ContentFieldInfo.cs @@ -5,6 +5,6 @@ using Orchard.ContentManagement.MetaData.Models; namespace Orchard.ContentManagement.MetaData { public class ContentFieldInfo { public string FieldTypeName { get; set; } - public Func Factory { get; set; } + public Func Factory { get; set; } } } diff --git a/src/Orchard/ContentManagement/MetaData/ContentPartInfo.cs b/src/Orchard/ContentManagement/MetaData/ContentPartInfo.cs index a7c8c190a..42babb8b6 100644 --- a/src/Orchard/ContentManagement/MetaData/ContentPartInfo.cs +++ b/src/Orchard/ContentManagement/MetaData/ContentPartInfo.cs @@ -4,6 +4,6 @@ using Orchard.ContentManagement.MetaData.Models; namespace Orchard.ContentManagement.MetaData { public class ContentPartInfo { public string PartName { get; set; } - public Func Factory { get; set; } + public Func Factory { get; set; } } } diff --git a/src/Orchard/ContentManagement/MetaData/IContentDefinitionEditorEvents.cs b/src/Orchard/ContentManagement/MetaData/IContentDefinitionEditorEvents.cs index b43ca3138..35af04092 100644 --- a/src/Orchard/ContentManagement/MetaData/IContentDefinitionEditorEvents.cs +++ b/src/Orchard/ContentManagement/MetaData/IContentDefinitionEditorEvents.cs @@ -8,14 +8,14 @@ using Orchard.Events; namespace Orchard.ContentManagement.MetaData { public interface IContentDefinitionEditorEvents : IEventHandler { IEnumerable TypeEditor(ContentTypeDefinition definition); - IEnumerable TypePartEditor(ContentTypeDefinition.Part definition); + IEnumerable TypePartEditor(ContentTypePartDefinition definition); IEnumerable PartEditor(ContentPartDefinition definition); - IEnumerable PartFieldEditor(ContentPartDefinition.Field definition); + IEnumerable PartFieldEditor(ContentPartFieldDefinition definition); IEnumerable TypeEditorUpdate(ContentTypeDefinitionBuilder builder, IUpdateModel updateModel); - IEnumerable TypePartEditorUpdate(ContentTypeDefinitionBuilder.PartConfigurer builder, IUpdateModel updateModel); + IEnumerable TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel); IEnumerable PartEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel); - IEnumerable PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel); + IEnumerable PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel); } public abstract class ContentDefinitionEditorEventsBase : IContentDefinitionEditorEvents { @@ -23,7 +23,7 @@ namespace Orchard.ContentManagement.MetaData { return Enumerable.Empty(); } - public virtual IEnumerable TypePartEditor(ContentTypeDefinition.Part definition) { + public virtual IEnumerable TypePartEditor(ContentTypePartDefinition definition) { return Enumerable.Empty(); } @@ -31,7 +31,7 @@ namespace Orchard.ContentManagement.MetaData { return Enumerable.Empty(); } - public virtual IEnumerable PartFieldEditor(ContentPartDefinition.Field definition) { + public virtual IEnumerable PartFieldEditor(ContentPartFieldDefinition definition) { return Enumerable.Empty(); } @@ -39,7 +39,7 @@ namespace Orchard.ContentManagement.MetaData { return Enumerable.Empty(); } - public virtual IEnumerable TypePartEditorUpdate(ContentTypeDefinitionBuilder.PartConfigurer builder, IUpdateModel updateModel) { + public virtual IEnumerable TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) { return Enumerable.Empty(); } @@ -47,7 +47,7 @@ namespace Orchard.ContentManagement.MetaData { return Enumerable.Empty(); } - public virtual IEnumerable PartFieldEditorUpdate(ContentPartDefinitionBuilder.FieldConfigurer builder, IUpdateModel updateModel) { + public virtual IEnumerable PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel) { return Enumerable.Empty(); } diff --git a/src/Orchard/ContentManagement/MetaData/Models/ContentPartDefinition.cs b/src/Orchard/ContentManagement/MetaData/Models/ContentPartDefinition.cs index 10d38079b..567b80120 100644 --- a/src/Orchard/ContentManagement/MetaData/Models/ContentPartDefinition.cs +++ b/src/Orchard/ContentManagement/MetaData/Models/ContentPartDefinition.cs @@ -4,7 +4,7 @@ using Orchard.Utility.Extensions; namespace Orchard.ContentManagement.MetaData.Models { public class ContentPartDefinition { - public ContentPartDefinition(string name, IEnumerable fields, SettingsDictionary settings) { + public ContentPartDefinition(string name, IEnumerable fields, SettingsDictionary settings) { Name = name; Fields = fields.ToReadOnlyCollection(); Settings = settings; @@ -12,29 +12,12 @@ namespace Orchard.ContentManagement.MetaData.Models { public ContentPartDefinition(string name) { Name = name; - Fields = Enumerable.Empty(); + Fields = Enumerable.Empty(); Settings = new SettingsDictionary(); } public string Name { get; private set; } - public IEnumerable Fields { get; private set; } + public IEnumerable Fields { get; private set; } public SettingsDictionary Settings { get; private set; } - - public class Field { - public Field(string name) { - Name = name; - FieldDefinition = new ContentFieldDefinition(null); - Settings = new SettingsDictionary(); - } - public Field( ContentFieldDefinition contentFieldDefinition, string name, SettingsDictionary settings) { - Name = name; - FieldDefinition = contentFieldDefinition; - Settings = settings; - } - - public string Name { get; private set; } - public ContentFieldDefinition FieldDefinition { get; private set; } - public SettingsDictionary Settings { get; private set; } - } } } diff --git a/src/Orchard/ContentManagement/MetaData/Models/ContentPartFieldDefinition.cs b/src/Orchard/ContentManagement/MetaData/Models/ContentPartFieldDefinition.cs new file mode 100644 index 000000000..5fd42c8a2 --- /dev/null +++ b/src/Orchard/ContentManagement/MetaData/Models/ContentPartFieldDefinition.cs @@ -0,0 +1,18 @@ +namespace Orchard.ContentManagement.MetaData.Models { + public class ContentPartFieldDefinition { + public ContentPartFieldDefinition(string name) { + Name = name; + FieldDefinition = new ContentFieldDefinition(null); + Settings = new SettingsDictionary(); + } + public ContentPartFieldDefinition( ContentFieldDefinition contentFieldDefinition, string name, SettingsDictionary settings) { + Name = name; + FieldDefinition = contentFieldDefinition; + Settings = settings; + } + + public string Name { get; private set; } + public ContentFieldDefinition FieldDefinition { get; private set; } + public SettingsDictionary Settings { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard/ContentManagement/MetaData/Models/ContentTypeDefinition.cs b/src/Orchard/ContentManagement/MetaData/Models/ContentTypeDefinition.cs index cc1e00675..f85212385 100644 --- a/src/Orchard/ContentManagement/MetaData/Models/ContentTypeDefinition.cs +++ b/src/Orchard/ContentManagement/MetaData/Models/ContentTypeDefinition.cs @@ -4,7 +4,7 @@ using System.Linq; namespace Orchard.ContentManagement.MetaData.Models { public class ContentTypeDefinition { - public ContentTypeDefinition(string name, string displayName, IEnumerable parts, SettingsDictionary settings) { + public ContentTypeDefinition(string name, string displayName, IEnumerable parts, SettingsDictionary settings) { Name = name; DisplayName = displayName; Parts = parts; @@ -14,7 +14,7 @@ namespace Orchard.ContentManagement.MetaData.Models { public ContentTypeDefinition(string name, string displayName) { Name = name; DisplayName = displayName; - Parts = Enumerable.Empty(); + Parts = Enumerable.Empty(); Settings = new SettingsDictionary(); } @@ -22,22 +22,7 @@ namespace Orchard.ContentManagement.MetaData.Models { public string Name { get; private set; } [Required, StringLength(1024)] public string DisplayName { get; private set; } - public IEnumerable Parts { get; private set; } + public IEnumerable Parts { get; private set; } public SettingsDictionary Settings { get; private set; } - - public class Part { - - public Part(ContentPartDefinition contentPartDefinition, SettingsDictionary settings) { - PartDefinition = contentPartDefinition; - Settings = settings; - } - - public Part() { - Settings = new SettingsDictionary(); - } - - public ContentPartDefinition PartDefinition { get; private set; } - public SettingsDictionary Settings { get; private set; } - } } } diff --git a/src/Orchard/ContentManagement/MetaData/Models/ContentTypePartDefinition.cs b/src/Orchard/ContentManagement/MetaData/Models/ContentTypePartDefinition.cs new file mode 100644 index 000000000..8e748d50c --- /dev/null +++ b/src/Orchard/ContentManagement/MetaData/Models/ContentTypePartDefinition.cs @@ -0,0 +1,16 @@ +namespace Orchard.ContentManagement.MetaData.Models { + public class ContentTypePartDefinition { + + public ContentTypePartDefinition(ContentPartDefinition contentPartDefinition, SettingsDictionary settings) { + PartDefinition = contentPartDefinition; + Settings = settings; + } + + public ContentTypePartDefinition() { + Settings = new SettingsDictionary(); + } + + public ContentPartDefinition PartDefinition { get; private set; } + public SettingsDictionary Settings { get; private set; } + } +} \ No newline at end of file diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 51fdc1e9b..75e202326 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -312,12 +312,16 @@ Code + + Code + +