From d39042fda25426f71581497a76aa361b983fc0e7 Mon Sep 17 00:00:00 2001 From: loudej Date: Mon, 30 Nov 2009 20:15:52 +0000 Subject: [PATCH] Changing AddOnXxx to OnXxx in the content provider. Starting to hook up BodyAspect. --HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4042764 --- .../Core/Common/Models/BodyAspect.cs | 5 +- .../Common/Providers/BodyAspectProvider.cs | 11 ++++ .../Common/Providers/CommonAspectProvider.cs | 6 +- .../Packages/Orchard.Blogs/Models/BlogPost.cs | 2 +- .../Orchard.Blogs/Models/BlogPostProvider.cs | 2 +- .../Models/CommentSettings.cs | 2 +- .../Orchard.Media/Models/MediaSettings.cs | 2 +- .../Orchard.Roles/Models/UserRolesProvider.cs | 2 +- .../Orchard.Tags/Models/TagSettings.cs | 2 +- src/Orchard/Models/Driver/ContentProvider.cs | 61 +++++++++++++++++-- 10 files changed, 77 insertions(+), 18 deletions(-) diff --git a/src/Orchard.Web/Core/Common/Models/BodyAspect.cs b/src/Orchard.Web/Core/Common/Models/BodyAspect.cs index 4125ff14e..b2e8f4057 100644 --- a/src/Orchard.Web/Core/Common/Models/BodyAspect.cs +++ b/src/Orchard.Web/Core/Common/Models/BodyAspect.cs @@ -1,8 +1,7 @@ +using Orchard.Core.Common.Records; using Orchard.Models; namespace Orchard.Core.Common.Models { - public class BodyAspect : ContentPart { - public string Body { get; set; } - public string Format { get; set; } + public class BodyAspect : ContentPart { } } diff --git a/src/Orchard.Web/Core/Common/Providers/BodyAspectProvider.cs b/src/Orchard.Web/Core/Common/Providers/BodyAspectProvider.cs index b322b929d..67b7b77f2 100644 --- a/src/Orchard.Web/Core/Common/Providers/BodyAspectProvider.cs +++ b/src/Orchard.Web/Core/Common/Providers/BodyAspectProvider.cs @@ -1,7 +1,18 @@ +using System; +using Orchard.Core.Common.Models; +using Orchard.Core.Common.Records; +using Orchard.Data; using Orchard.Models.Driver; namespace Orchard.Core.Common.Providers { public class BodyAspectProvider : ContentProvider { + public BodyAspectProvider(IRepository bodyRepository) { + Filters.Add(new StorageFilter(bodyRepository)); + OnGetEditors(); + } + private void OnGetEditors() { + + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Core/Common/Providers/CommonAspectProvider.cs b/src/Orchard.Web/Core/Common/Providers/CommonAspectProvider.cs index 31e9dda0e..9a8f0b174 100644 --- a/src/Orchard.Web/Core/Common/Providers/CommonAspectProvider.cs +++ b/src/Orchard.Web/Core/Common/Providers/CommonAspectProvider.cs @@ -23,9 +23,9 @@ namespace Orchard.Core.Common.Providers { _authenticationService = authenticationService; _contentManager = contentManager; - AddOnActivated(PropertySetHandlers); - AddOnCreating(DefaultTimestampsAndOwner); - AddOnLoaded(LazyLoadHandlers); + OnActivated(PropertySetHandlers); + OnCreating(DefaultTimestampsAndOwner); + OnLoaded(LazyLoadHandlers); Filters.Add(new StorageFilter(repository)); } diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs index dc352f114..0fc1c4b72 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPost.cs @@ -9,7 +9,7 @@ namespace Orchard.Blogs.Models { public Blog Blog { get; set; } public string Title { get { return this.As().Title; } } - public string Body { get { return this.As().Body; } } + public string Body { get { return this.As().Record.Body; } } public string Slug { get { return this.As().Slug; } } public IUser Creator { get { return this.As().OwnerField.Value; } } public DateTime? Published { get { return Record.Published; } } diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostProvider.cs b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostProvider.cs index 6828943c6..21e895ff0 100644 --- a/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostProvider.cs +++ b/src/Orchard.Web/Packages/Orchard.Blogs/Models/BlogPostProvider.cs @@ -16,7 +16,7 @@ namespace Orchard.Blogs.Models { Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new ActivatingFilter("blogpost")); Filters.Add(new StorageFilter(repository)); - AddOnLoaded((context, bp) => bp.Blog = contentManager.Get(bp.Record.Blog.Id)); + OnLoaded((context, bp) => bp.Blog = contentManager.Get(bp.Record.Blog.Id)); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Packages/Orchard.Comments/Models/CommentSettings.cs b/src/Orchard.Web/Packages/Orchard.Comments/Models/CommentSettings.cs index d8cf8585e..72c2b715a 100644 --- a/src/Orchard.Web/Packages/Orchard.Comments/Models/CommentSettings.cs +++ b/src/Orchard.Web/Packages/Orchard.Comments/Models/CommentSettings.cs @@ -23,7 +23,7 @@ namespace Orchard.Comments.Models { Filters.Add(new ActivatingFilter("site")); Filters.Add(new StorageFilter(_commentSettingsRepository) { AutomaticallyCreateMissingRecord = true }); Filters.Add(new TemplateFilterForRecord("CommentSettings")); - AddOnActivated(DefaultSettings); + OnActivated(DefaultSettings); } private static void DefaultSettings(ActivatedContentContext context, CommentSettings settings) { diff --git a/src/Orchard.Web/Packages/Orchard.Media/Models/MediaSettings.cs b/src/Orchard.Web/Packages/Orchard.Media/Models/MediaSettings.cs index fb3a11f96..64c47bde8 100644 --- a/src/Orchard.Web/Packages/Orchard.Media/Models/MediaSettings.cs +++ b/src/Orchard.Web/Packages/Orchard.Media/Models/MediaSettings.cs @@ -16,7 +16,7 @@ namespace Orchard.Media.Models { public MediaSettingsProvider(IRepository repository) { Filters.Add(new ActivatingFilter("site")); Filters.Add(new StorageFilter(repository) { AutomaticallyCreateMissingRecord = true }); - AddOnActivated(DefaultSettings); + OnActivated(DefaultSettings); } private static void DefaultSettings(ActivatedContentContext context, MediaSettings settings) { diff --git a/src/Orchard.Web/Packages/Orchard.Roles/Models/UserRolesProvider.cs b/src/Orchard.Web/Packages/Orchard.Roles/Models/UserRolesProvider.cs index de98a9fee..14b51b0a5 100644 --- a/src/Orchard.Web/Packages/Orchard.Roles/Models/UserRolesProvider.cs +++ b/src/Orchard.Web/Packages/Orchard.Roles/Models/UserRolesProvider.cs @@ -22,7 +22,7 @@ namespace Orchard.Roles.Models { _notifier = notifier; Filters.Add(new ActivatingFilter("user")); - AddOnLoaded((context, userRoles) => { + OnLoaded((context, userRoles) => { userRoles.Roles = _userRolesRepository .Fetch(x => x.UserId == context.ContentItem.Id) .Select(x => x.Role.Name).ToList(); diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Models/TagSettings.cs b/src/Orchard.Web/Packages/Orchard.Tags/Models/TagSettings.cs index e505ff490..d872ca0b2 100644 --- a/src/Orchard.Web/Packages/Orchard.Tags/Models/TagSettings.cs +++ b/src/Orchard.Web/Packages/Orchard.Tags/Models/TagSettings.cs @@ -16,7 +16,7 @@ namespace Orchard.Tags.Models { Filters.Add(new ActivatingFilter("site")); Filters.Add(new StorageFilter(repository) { AutomaticallyCreateMissingRecord = true }); Filters.Add(new TemplateFilterForRecord("TagSettings")); - AddOnActivated(DefaultSettings); + OnActivated(DefaultSettings); } private static void DefaultSettings(ActivatedContentContext context, TagSettings settings) { diff --git a/src/Orchard/Models/Driver/ContentProvider.cs b/src/Orchard/Models/Driver/ContentProvider.cs index c9e4dcca1..c8cc0d842 100644 --- a/src/Orchard/Models/Driver/ContentProvider.cs +++ b/src/Orchard/Models/Driver/ContentProvider.cs @@ -13,25 +13,74 @@ namespace Orchard.Models.Driver { public List Filters { get; set; } public ILogger Logger { get; set; } - public void AddOnActivated(Action handler) where TPart : class, IContent { + protected void OnActivated(Action handler) where TPart : class, IContent { Filters.Add(new InlineStorageFilter { OnActivated = handler }); } - public void AddOnCreating(Action handler) where TPart : class, IContent { + + protected void OnCreating(Action handler) where TPart : class, IContent { Filters.Add(new InlineStorageFilter { OnCreating = handler }); } - public void AddOnLoaded(Action handler) where TPart : class, IContent { + + protected void OnCreated(Action handler) where TPart : class, IContent { + Filters.Add(new InlineStorageFilter { OnCreated = handler }); + } + + protected void OnLoading(Action handler) where TPart : class, IContent { + Filters.Add(new InlineStorageFilter { OnLoading = handler }); + } + + protected void OnLoaded(Action handler) where TPart : class, IContent { Filters.Add(new InlineStorageFilter { OnLoaded = handler }); } + protected void OnGetDisplays(Action handler) where TPart : class, IContent { + Filters.Add(new InlineTemplateFilter { OnGetDisplays = handler }); + } + + protected void OnGetEditors(Action handler) where TPart : class, IContent { + Filters.Add(new InlineTemplateFilter { OnGetEditors = handler }); + } + + protected void OnUpdateEditors(Action handler) where TPart : class, IContent { + Filters.Add(new InlineTemplateFilter { OnUpdateEditors = handler }); + } + class InlineStorageFilter : StorageFilterBase where TPart : class, IContent { public Action OnActivated { get; set; } public Action OnCreating { get; set; } public Action OnCreated { get; set; } public Action OnLoading { get; set; } public Action OnLoaded { get; set; } - protected override void Activated(ActivatedContentContext context, TPart instance) { if (OnActivated != null) OnActivated(context, instance); } - protected override void Creating(CreateContentContext context, TPart instance) { if (OnCreating != null) OnCreating(context, instance); } - protected override void Loaded(LoadContentContext context, TPart instance) { if (OnLoaded != null) OnLoaded(context, instance); } + protected override void Activated(ActivatedContentContext context, TPart instance) { + if (OnActivated != null) OnActivated(context, instance); + } + protected override void Creating(CreateContentContext context, TPart instance) { + if (OnCreating != null) OnCreating(context, instance); + } + protected override void Created(CreateContentContext context, TPart instance) { + if (OnCreating != null) OnCreated(context, instance); + } + protected override void Loading(LoadContentContext context, TPart instance) { + if (OnLoaded != null) OnLoading(context, instance); + } + protected override void Loaded(LoadContentContext context, TPart instance) { + if (OnLoaded != null) OnLoaded(context, instance); + } + } + + class InlineTemplateFilter : TemplateFilterBase where TPart : class, IContent { + public Action OnGetDisplays { get; set; } + public Action OnGetEditors { get; set; } + public Action OnUpdateEditors { get; set; } + protected override void GetDisplays(GetDisplaysContext context, TPart instance) { + if (OnGetDisplays != null) OnGetDisplays(context, instance); + } + protected override void GetEditors(GetEditorsContext context, TPart instance) { + if (OnGetEditors != null) OnGetEditors(context, instance); + } + protected override void UpdateEditors(UpdateContentContext context, TPart instance) { + if (OnUpdateEditors != null) OnUpdateEditors(context, instance); + } } public virtual IEnumerable GetContentTypes() {