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);
                }
            }
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
                }
            }
        }