/// <summary>
        /// Executes the action under the specified transaction.
        /// </summary>
        /// <param name="transaction">The transaction.</param>
        /// <seealso cref="IDeploymentTransaction" />
        public override void Execute(IDeploymentTransaction transaction)
        {
            var files = DeploymentContext.ProductConfigurationProvider.GetInstalledFiles(_packageId, true);

            var deleteEvent = new BeforePackageUninstalledEvent();

            deleteEvent.FilesToDelete.AddRange(files);
            RaiseDeploymentEvent(deleteEvent, _packageId);

            foreach (var file in deleteEvent.FilesToDelete)
            {
                transaction.DeleteFile(file);
            }

            DeploymentContext.ProductConfigurationProvider.RemovePackage(_packageId);
            transaction.TrackDeletedPackage(_packageId);

            RaiseDeploymentEvent(new AfterPackageUninstalledEvent(), _packageId);
            Info($"{_packageId} uninstalled");
        }
Exemple #2
0
        protected virtual void OnDeletePackages(FileTransaction fileTransaction, IEnumerable <PackageId> packages,
                                                IProductConfigurationProvider productConfig)
        {
            foreach (var packageId in packages)
            {
                var files = productConfig.GetInstalledFiles(packageId, true);

                var deleteEvent = new BeforePackageUninstalledEvent();
                deleteEvent.FilesToDelete.AddRange(files);
                RaiseDeploymentEvent(deleteEvent, packageId);

                foreach (var file in deleteEvent.FilesToDelete)
                {
                    fileTransaction.DeleteFile(file);
                }

                productConfig.RemovePackageConfiguration(packageId);

                RaiseDeploymentEvent(new AfterPackageUninstalledEvent(), packageId);
                Logger.Info($"Package {packageId} uninstalled");
            }
        }