Hooking up Removing/Removed events to fire when DefaultContentManager.Remove is called (this fixes the bug where deleting a blog post doesn't decrement its blog post count).

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4045369
This commit is contained in:
ErikPorter
2010-01-13 23:30:56 +00:00
parent 622cb50c02
commit d195d2b231

View File

@@ -207,6 +207,12 @@ namespace Orchard.ContentManagement {
public virtual void Remove(ContentItem contentItem) { public virtual void Remove(ContentItem contentItem) {
var activeVersions = _contentItemVersionRepository.Fetch(x => x.ContentItemRecord == contentItem.Record && (x.Published || x.Latest)); var activeVersions = _contentItemVersionRepository.Fetch(x => x.ContentItemRecord == contentItem.Record && (x.Published || x.Latest));
var context = new RemoveContentContext(contentItem);
foreach (var handler in Handlers) {
handler.Removing(context);
}
foreach (var version in activeVersions) { foreach (var version in activeVersions) {
if (version.Published) { if (version.Published) {
version.Published = false; version.Published = false;
@@ -215,7 +221,10 @@ namespace Orchard.ContentManagement {
version.Latest = false; version.Latest = false;
} }
} }
//TODO: fire content handler events
foreach (var handler in Handlers) {
handler.Removed(context);
}
} }
protected virtual ContentItem BuildNewVersion(ContentItem existingContentItem) { protected virtual ContentItem BuildNewVersion(ContentItem existingContentItem) {