diff --git a/src/Umbraco.Core/Events/ImportPackageEventArgs.cs b/src/Umbraco.Core/Events/ImportPackageEventArgs.cs index ae7b14dbd5..e4351b2064 100644 --- a/src/Umbraco.Core/Events/ImportPackageEventArgs.cs +++ b/src/Umbraco.Core/Events/ImportPackageEventArgs.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using Umbraco.Core.Packaging.Models; namespace Umbraco.Core.Events @@ -7,18 +8,27 @@ namespace Umbraco.Core.Events public class ImportPackageEventArgs : CancellableEnumerableObjectEventArgs, IEquatable> { private readonly MetaData _packageMetaData; - + + [EditorBrowsable(EditorBrowsableState.Never)] + [Obsolete("Use the overload specifying packageMetaData instead")] public ImportPackageEventArgs(TEntity eventObject, bool canCancel) : base(new[] { eventObject }, canCancel) { } - public ImportPackageEventArgs(TEntity eventObject, MetaData packageMetaData) - : base(new[] { eventObject }) + public ImportPackageEventArgs(TEntity eventObject, MetaData packageMetaData, bool canCancel) + : base(new[] { eventObject }, canCancel) { + if (packageMetaData == null) throw new ArgumentNullException("packageMetaData"); _packageMetaData = packageMetaData; } + public ImportPackageEventArgs(TEntity eventObject, MetaData packageMetaData) + : this(eventObject, packageMetaData, true) + { + + } + public MetaData PackageMetaData { get { return _packageMetaData; } diff --git a/src/Umbraco.Core/Services/PackagingService.cs b/src/Umbraco.Core/Services/PackagingService.cs index 6fa4a54a4b..32e33cc35e 100644 --- a/src/Umbraco.Core/Services/PackagingService.cs +++ b/src/Umbraco.Core/Services/PackagingService.cs @@ -1748,9 +1748,10 @@ namespace Umbraco.Core.Services internal InstallationSummary InstallPackage(string packageFilePath, int userId = 0, bool raiseEvents = false) { + var metaData = GetPackageMetaData(packageFilePath); + if (raiseEvents) - { - var metaData = GetPackageMetaData(packageFilePath); + { if (ImportingPackage.IsRaisedEventCancelled(new ImportPackageEventArgs(packageFilePath, metaData), this)) { var initEmpty = new InstallationSummary().InitEmpty(); @@ -1762,7 +1763,7 @@ namespace Umbraco.Core.Services if (raiseEvents) { - ImportedPackage.RaiseEvent(new ImportPackageEventArgs(installationSummary, false), this); + ImportedPackage.RaiseEvent(new ImportPackageEventArgs(installationSummary, metaData, false), this); } return installationSummary; diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 0499157427..0334212ecb 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -831,7 +831,9 @@ namespace umbraco.cms.businesslogic.packager var installationSummary = insPack.GetInstallationSummary(contentTypeService, dataTypeService, fileService, localizationService, macroService); installationSummary.PackageInstalled = true; - var args = new ImportPackageEventArgs(installationSummary, false); + var metadata = insPack.GetMetaData(); + + var args = new ImportPackageEventArgs(installationSummary, metadata, false); PackagingService.OnImportedPackage(args); } }