From 194d241b027a48a50cc3d8655113bfd3c8d67cd5 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Fri, 28 Dec 2012 14:15:12 -0100 Subject: [PATCH] Adding Publish and UnPublish EventArgs --- src/Umbraco.Core/Events/PublishEventArgs.cs | 53 +++++++++++++++++++ src/Umbraco.Core/Events/SaveEventArgs.cs | 3 +- src/Umbraco.Core/Events/UnPublishEventArgs.cs | 53 +++++++++++++++++++ .../Models/EntityBase/IUmbracoEntity.cs | 40 ++++++++++++++ src/Umbraco.Core/Umbraco.Core.csproj | 3 ++ 5 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Core/Events/PublishEventArgs.cs create mode 100644 src/Umbraco.Core/Events/UnPublishEventArgs.cs create mode 100644 src/Umbraco.Core/Models/EntityBase/IUmbracoEntity.cs diff --git a/src/Umbraco.Core/Events/PublishEventArgs.cs b/src/Umbraco.Core/Events/PublishEventArgs.cs new file mode 100644 index 0000000000..98afede375 --- /dev/null +++ b/src/Umbraco.Core/Events/PublishEventArgs.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Umbraco.Core.Events +{ + public class PublishEventArgs : CancellableObjectEventArgs> + { + /// + /// Constructor accepting multiple entities that are used in the publish operation + /// + /// + /// + public PublishEventArgs(IEnumerable eventObject, bool canCancel) + : base(eventObject, canCancel) + { + } + + /// + /// Constructor accepting multiple entities that are used in the publish operation + /// + /// + public PublishEventArgs(IEnumerable eventObject) + : base(eventObject) + { + } + + /// + /// Constructor accepting a single entity instance + /// + /// + public PublishEventArgs(TEntity eventObject) + : base(new List { eventObject }) + { + } + + /// + /// Constructor accepting a single entity instance + /// + /// + /// + public PublishEventArgs(TEntity eventObject, bool canCancel) + : base(new List { eventObject }, canCancel) + { + } + + /// + /// Returns all entities that were published during the operation + /// + public IEnumerable PublishedEntities + { + get { return EventObject; } + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Events/SaveEventArgs.cs b/src/Umbraco.Core/Events/SaveEventArgs.cs index ea1a94e5b3..a81d96ef06 100644 --- a/src/Umbraco.Core/Events/SaveEventArgs.cs +++ b/src/Umbraco.Core/Events/SaveEventArgs.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using Umbraco.Core.Models.EntityBase; namespace Umbraco.Core.Events { @@ -44,7 +43,7 @@ namespace Umbraco.Core.Events } /// - /// Returns all entities that were deleted during the operation + /// Returns all entities that were saved during the operation /// public IEnumerable SavedEntities { diff --git a/src/Umbraco.Core/Events/UnPublishEventArgs.cs b/src/Umbraco.Core/Events/UnPublishEventArgs.cs new file mode 100644 index 0000000000..62e0c054d6 --- /dev/null +++ b/src/Umbraco.Core/Events/UnPublishEventArgs.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Umbraco.Core.Events +{ + public class UnPublishEventArgs : CancellableObjectEventArgs> + { + /// + /// Constructor accepting multiple entities that are used in the unpublish operation + /// + /// + /// + public UnPublishEventArgs(IEnumerable eventObject, bool canCancel) + : base(eventObject, canCancel) + { + } + + /// + /// Constructor accepting multiple entities that are used in the unpublish operation + /// + /// + public UnPublishEventArgs(IEnumerable eventObject) + : base(eventObject) + { + } + + /// + /// Constructor accepting a single entity instance + /// + /// + public UnPublishEventArgs(TEntity eventObject) + : base(new List { eventObject }) + { + } + + /// + /// Constructor accepting a single entity instance + /// + /// + /// + public UnPublishEventArgs(TEntity eventObject, bool canCancel) + : base(new List { eventObject }, canCancel) + { + } + + /// + /// Returns all entities that were unpublished during the operation + /// + public IEnumerable UnPublishedEntities + { + get { return EventObject; } + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Models/EntityBase/IUmbracoEntity.cs b/src/Umbraco.Core/Models/EntityBase/IUmbracoEntity.cs new file mode 100644 index 0000000000..2810c9a4d3 --- /dev/null +++ b/src/Umbraco.Core/Models/EntityBase/IUmbracoEntity.cs @@ -0,0 +1,40 @@ +namespace Umbraco.Core.Models.EntityBase +{ + internal interface IUmbracoEntity : IEntity + { + /// + /// Gets or sets the Id of the Parent entity + /// + int ParentId { get; set; } + + /// + /// Gets or sets the sort order of the Entity + /// + int SortOrder { get; set; } + + /// + /// Gets or sets the level of the Entity + /// + int Level { get; set; } + + /// + /// Gets or sets the path to the Entity + /// + string Path { get; set; } + + /// + /// Profile of the user who created this Entity + /// + int CreatorId { get; set; } + + /// + /// Boolean indicating whether this Entity is Trashed or not. + /// If an Entity is Trashed it will be located in the Recyclebin. + /// + /// + /// When content is trashed it should be unpublished. + /// Not all entities support being trashed, they'll always return false. + /// + bool Trashed { get; } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index e1b8fbb05c..c09fb93d35 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -125,6 +125,7 @@ + @@ -133,6 +134,7 @@ + @@ -153,6 +155,7 @@ +