mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Fixing NRE in blog posts count task
This commit is contained in:
@@ -5,22 +5,25 @@ using Orchard.Blogs.Models;
|
|||||||
using Orchard.Blogs.Services;
|
using Orchard.Blogs.Services;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.ContentManagement.Handlers;
|
using Orchard.ContentManagement.Handlers;
|
||||||
|
using Orchard.Core.Common.Models;
|
||||||
|
|
||||||
namespace Orchard.Blogs.Handlers {
|
namespace Orchard.Blogs.Handlers {
|
||||||
[UsedImplicitly]
|
[UsedImplicitly]
|
||||||
public class BlogPostPartHandler : ContentHandler {
|
public class BlogPostPartHandler : ContentHandler {
|
||||||
|
private readonly IBlogService _blogService;
|
||||||
|
|
||||||
public BlogPostPartHandler(IBlogService blogService, IBlogPostService blogPostService, RequestContext requestContext) {
|
public BlogPostPartHandler(IBlogService blogService, IBlogPostService blogPostService, RequestContext requestContext) {
|
||||||
|
_blogService = blogService;
|
||||||
|
|
||||||
OnGetDisplayShape<BlogPostPart>(SetModelProperties);
|
OnGetDisplayShape<BlogPostPart>(SetModelProperties);
|
||||||
OnGetEditorShape<BlogPostPart>(SetModelProperties);
|
OnGetEditorShape<BlogPostPart>(SetModelProperties);
|
||||||
OnUpdateEditorShape<BlogPostPart>(SetModelProperties);
|
OnUpdateEditorShape<BlogPostPart>(SetModelProperties);
|
||||||
|
|
||||||
OnCreated<BlogPostPart>((context, part) => blogService.ProcessBlogPostsCount(part.BlogPart.Id));
|
OnCreated<BlogPostPart>((context, part) => ProcessBlogPostsCount(part));
|
||||||
OnPublished<BlogPostPart>((context, part) => blogService.ProcessBlogPostsCount(part.BlogPart.Id));
|
OnPublished<BlogPostPart>((context, part) => ProcessBlogPostsCount(part));
|
||||||
OnUnpublished<BlogPostPart>((context, part) => blogService.ProcessBlogPostsCount(part.BlogPart.Id));
|
OnUnpublished<BlogPostPart>((context, part) => ProcessBlogPostsCount(part));
|
||||||
OnVersioned<BlogPostPart>((context, part, newVersionPart) => blogService.ProcessBlogPostsCount(newVersionPart.BlogPart.Id));
|
OnVersioned<BlogPostPart>((context, part, newVersionPart) => ProcessBlogPostsCount(newVersionPart));
|
||||||
OnRemoved<BlogPostPart>((context, part) => blogService.ProcessBlogPostsCount(part.BlogPart.Id));
|
OnRemoved<BlogPostPart>((context, part) => ProcessBlogPostsCount(part));
|
||||||
|
|
||||||
OnRemoved<BlogPart>(
|
OnRemoved<BlogPart>(
|
||||||
(context, b) =>
|
(context, b) =>
|
||||||
@@ -28,6 +31,15 @@ namespace Orchard.Blogs.Handlers {
|
|||||||
blogPost => context.ContentManager.Remove(blogPost.ContentItem)));
|
blogPost => context.ContentManager.Remove(blogPost.ContentItem)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ProcessBlogPostsCount(BlogPostPart blogPostPart) {
|
||||||
|
CommonPart commonPart = blogPostPart.As<CommonPart>();
|
||||||
|
if (commonPart != null &&
|
||||||
|
commonPart.Record.Container != null) {
|
||||||
|
|
||||||
|
_blogService.ProcessBlogPostsCount(commonPart.Container.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void SetModelProperties(BuildShapeContext context, BlogPostPart blogPost) {
|
private static void SetModelProperties(BuildShapeContext context, BlogPostPart blogPost) {
|
||||||
context.Shape.Blog = blogPost.BlogPart;
|
context.Shape.Blog = blogPost.BlogPart;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user