diff --git a/src/Umbraco.Core/Events/UninstallPackageNotification.cs b/src/Umbraco.Core/Events/UninstallPackageNotification.cs new file mode 100644 index 0000000000..9ad71c800c --- /dev/null +++ b/src/Umbraco.Core/Events/UninstallPackageNotification.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using Umbraco.Cms.Core.Packaging; + +namespace Umbraco.Cms.Core.Events +{ + public class UninstallPackageNotification : ICancelableNotification + { + public UninstallPackageNotification(IEnumerable uninstallationSummary) => UninstallationSummary = uninstallationSummary; + + public IEnumerable UninstallationSummary { get; } + + public bool Cancel { get; set; } + } +} + + diff --git a/src/Umbraco.Infrastructure/Services/Implement/PackagingService.cs b/src/Umbraco.Infrastructure/Services/Implement/PackagingService.cs index 4a6e1eb8e3..67766359d5 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/PackagingService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/PackagingService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -22,6 +22,7 @@ namespace Umbraco.Cms.Core.Services.Implement { private readonly IPackageInstallation _packageInstallation; private readonly IHostingEnvironment _hostingEnvironment; + private readonly IEventAggregator _eventAggregator; private readonly IAuditService _auditService; private readonly ICreatedPackagesRepository _createdPackages; private readonly IInstalledPackagesRepository _installedPackages; @@ -32,13 +33,15 @@ namespace Umbraco.Cms.Core.Services.Implement ICreatedPackagesRepository createdPackages, IInstalledPackagesRepository installedPackages, IPackageInstallation packageInstallation, - IHostingEnvironment hostingEnvironment) + IHostingEnvironment hostingEnvironment, + IEventAggregator eventAggregator) { _auditService = auditService; _createdPackages = createdPackages; _installedPackages = installedPackages; _packageInstallation = packageInstallation; _hostingEnvironment = hostingEnvironment; + _eventAggregator = eventAggregator; } #region Package Files @@ -168,7 +171,7 @@ namespace Umbraco.Cms.Core.Services.Implement } // trigger the UninstalledPackage event - UninstalledPackage.RaiseEvent(new UninstallPackageEventArgs(allSummaries, false), this); + _eventAggregator.Publish(new UninstallPackageNotification(allSummaries)); return summary; } @@ -249,11 +252,7 @@ namespace Umbraco.Cms.Core.Services.Implement /// public static event TypedEventHandler> ImportedPackage; - /// - /// Occurs after a package is uninstalled - /// - public static event TypedEventHandler UninstalledPackage; - + #endregion