private void DeinstallFeatureDefinition(DeinstallationRequest message) { _log.Debug("Entered LoadFarmFeatures"); if (!TaskCanceled) { var errorMsg = dataService.Uninstall(message.FeatureDefinition); if (string.IsNullOrEmpty(errorMsg)) { Sender.Tell(new Core.Messages.Completed.DeinstallationCompleted( message.TaskId, message.FeatureDefinition.UniqueIdentifier)); } else { var cancelationMsg = new CancelMessage( message.TaskId, errorMsg, true ); Sender.Tell(cancelationMsg); } } }
private void UninstallDefinition() { if (!TaskCanceled) { // force and elevatedprivileges are irrelevant for feature definition uninstall // they are only available for qualifying feature deactivation of active features before the uninstallation var fdQuery = new DeinstallationRequest(FeatureDefinitionToUninstall); featureDefinitionActor.Tell(fdQuery); } }
public void Handle(DeinstallationRequest message) { var requestWithCorrectSettings = message.GetWithUpdatedSettings(force, elevatedPrivileges); SetupNewFeatureDefinitionTaskActor(requestWithCorrectSettings); }
private void HandleDeinstallationRequest(DeinstallationRequest message) { _log.Debug("Entered HandleDeinstallationRequest with Id " + Id.ToString()); if (!TaskCanceled) { FeatureDefinitionToUninstall = message.FeatureDefinition; Title = message.Title; string mentionForce = string.Empty; // these settings are only required for feature deactivation, not needed for uninstall // in case definition has scope invalid, feature deactivation is only possible with force if (FeatureDefinitionToUninstall.Scope == Enums.Scope.ScopeInvalid) { force = true; mentionForce = "\n\nfyi - As this definition has an invalid scope, feature deactivation will be done with 'force' flag enabled, no mater what is set in feature admin UI."; } else { force = message.Force.Value; } elevatedPrivileges = message.ElevatedPrivileges.Value; // retrieve activated features with this feature definition in this farm var featuresToDeactivate = repository.GetActivatedFeatures(message.FeatureDefinition); if (featuresToDeactivate.Any()) { FeatureDeactivations = repository.GetAsActivatedFeatureSpecial(featuresToDeactivate); var confirmRequest = new DecisionRequest( Title, string.Format( "You requested to uninstall the feature definition\n\n{0}\n\nThere are still features activated in this farm. Count: {1} \n\n" + "It is recommended to deactivate these features before uninstalling the definition. Should activated features first be deactivated?\n" + "(If you click 'No', the deinstallation of feature definition will start without activating any active features based on this definition before --> not recommended.{2}", message.FeatureDefinition.ToString(), featuresToDeactivate.Count(), mentionForce ), Id ); eventAggregator.PublishOnUIThread(confirmRequest); } else { var confirmRequest = new ConfirmationRequest( Title, string.Format( "Uninstall of feature definition\n\n{0}\n\nThere were no activated features found in this farm.\n\n", message.FeatureDefinition.ToString() ), Id ); eventAggregator.PublishOnUIThread(confirmRequest); } } }